1 package org.picocontainer.doc.introduction;2 3 import junit.framework.TestCase;4 import org.picocontainer.MutablePicoContainer;5 import org.picocontainer.defaults.DefaultPicoContainer;6 import org.picocontainer.defaults.UnsatisfiableDependenciesException;7 8 /**9 * @author Aslak Hellesøy10 * @version $Revision: 1297 $11 */12 public class HierarchyTestCase extends TestCase {13 public void testHierarchy() {14 try {15 // START SNIPPET: wontwork16 // Create x hierarchy of containers17 MutablePicoContainer x = new DefaultPicoContainer();18 MutablePicoContainer y = new DefaultPicoContainer( x );19 MutablePicoContainer z = new DefaultPicoContainer( x );20 21 // Assemble components22 x.registerComponentImplementation(Apple.class);23 y.registerComponentImplementation(Juicer.class);24 z.registerComponentImplementation(Peeler.class);25 26 // Instantiate components27 Peeler peeler = (Peeler) z.getComponentInstance(Peeler.class);28 // WON'T WORK! peeler will be null29 peeler = (Peeler) x.getComponentInstance(Peeler.class);30 // WON'T WORK! This will throw an exception31 Juicer juicer = (Juicer) y.getComponentInstance(Juicer.class);32 // END SNIPPET: wontwork33 } catch (UnsatisfiableDependenciesException e) {34 // expected35 }36 }37 38 }