KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nanocontainer > reflection > DefaultNanoPicoContainerTestCase


1 /*****************************************************************************
2  * Copyright (C) NanoContainer Organization. All rights reserved. *
3  * ------------------------------------------------------------------------- *
4  * The software in this package is published under the terms of the BSD *
5  * style license a copy of which has been included with this distribution in *
6  * the LICENSE.txt file. *
7  * *
8  * Original code by Paul Hammant *
9  *****************************************************************************/

10
11 package org.nanocontainer.reflection;
12
13 import org.nanocontainer.NanoPicoContainer;
14 import org.picocontainer.MutablePicoContainer;
15 import org.picocontainer.PicoContainer;
16 import org.picocontainer.tck.AbstractPicoContainerTestCase;
17
18 /**
19  * @author Paul Hammant
20  * @version $Revision: 2962 $
21  */

22 public class DefaultNanoPicoContainerTestCase extends AbstractPicoContainerTestCase {
23
24     protected MutablePicoContainer createPicoContainer(PicoContainer parent) {
25         return new DefaultNanoPicoContainer(this.getClass().getClassLoader(), parent);
26     }
27
28     // TODO - go to a Nano TCK?
29
public void testNamedChildContainerIsAccessible() {
30         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
31         final NanoPicoContainer parent = (NanoPicoContainer) createPicoContainer(null);
32         parent.registerComponentInstance(sb);
33         final NanoPicoContainer child = (NanoPicoContainer) parent.makeChildContainer("foo");
34         child.registerComponentImplementation(LifeCycleMonitoring.class,LifeCycleMonitoring.class);
35         LifeCycleMonitoring o = (LifeCycleMonitoring) parent.getComponentInstance("foo/*" + LifeCycleMonitoring.class.getName());
36         assertNotNull(o);
37     }
38
39     // TODO - go to a Nano TCK?
40
public void testNamedChildContainerIsAccessibleForStringKeys() {
41         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
42         final NanoPicoContainer parent = (NanoPicoContainer) createPicoContainer(null);
43         parent.registerComponentInstance(sb);
44         final MutablePicoContainer child = parent.makeChildContainer("foo");
45         child.registerComponentImplementation("lcm",LifeCycleMonitoring.class);
46         Object JavaDoc o = parent.getComponentInstance("foo/lcm");
47         assertNotNull(o);
48         assertTrue(sb.toString().indexOf("-instantiated") != -1);
49     }
50
51     // TODO - go to a Nano TCK?
52
public void testNamedChildContainerIsAccessibleForClassKeys() {
53         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
54         final NanoPicoContainer parent = (NanoPicoContainer) createPicoContainer(null);
55         parent.registerComponentInstance(sb);
56         final MutablePicoContainer child = parent.makeChildContainer("foo");
57         child.registerComponentImplementation(LifeCycleMonitoring.class,LifeCycleMonitoring.class);
58         Object JavaDoc o = parent.getComponentInstance("foo/*" + LifeCycleMonitoring.class.getName());
59         assertNotNull(o);
60         assertTrue(sb.toString().indexOf("-instantiated") != -1);
61     }
62
63     public void testMakeRemoveChildContainer() {
64         final NanoPicoContainer parent = (NanoPicoContainer) createPicoContainer(null);
65         parent.registerComponentInstance("java.lang.String", "This is a test");
66         MutablePicoContainer pico = parent.makeChildContainer();
67         // Verify they are indeed wired together.
68
assertNotNull(pico.getComponentInstance("java.lang.String"));
69         boolean result = parent.removeChildContainer(pico);
70         assertTrue(result);
71     }
72
73     // test methods inherited. This container is otherwise fully compliant.
74

75
76 }
77
Popular Tags