KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > picocontainer > alternatives > CachingPicoContainerTestCase


1 /*****************************************************************************
2  * Copyright (C) PicoContainer 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 the committers *
9  *****************************************************************************/

10
11 package org.picocontainer.alternatives;
12
13 import java.util.ArrayList JavaDoc;
14 import java.util.Iterator JavaDoc;
15 import java.util.List JavaDoc;
16
17 import org.picocontainer.MutablePicoContainer;
18 import org.picocontainer.PicoContainer;
19 import org.picocontainer.alternatives.ImmutablePicoContainerTestCase.UnsatisfiableIterator;
20 import org.picocontainer.defaults.ConstructorInjectionComponentAdapterFactory;
21 import org.picocontainer.defaults.DefaultPicoContainer;
22 import org.picocontainer.tck.AbstractPicoContainerTestCase;
23
24 /**
25  * @author Paul Hammant
26  * @version $Revision: 3140 $
27  */

28 public class CachingPicoContainerTestCase extends AbstractPicoContainerTestCase {
29
30     protected MutablePicoContainer createImplementationHidingPicoContainer() {
31         return new CachingPicoContainer();
32     }
33
34     protected MutablePicoContainer createPicoContainer(PicoContainer parent) {
35         return new CachingPicoContainer(parent);
36     }
37
38     public void testUsageOfADifferentComponentAdapterFactory() {
39         // Jira bug 212 - logical opposite
40
MutablePicoContainer parent = new DefaultPicoContainer();
41         CachingPicoContainer pico = new CachingPicoContainer(new ConstructorInjectionComponentAdapterFactory(), parent);
42         pico.registerComponentImplementation(List JavaDoc.class, ArrayList JavaDoc.class);
43         List JavaDoc list1 = (List JavaDoc) pico.getComponentInstanceOfType(List JavaDoc.class);
44         List JavaDoc list2 = (List JavaDoc) pico.getComponentInstanceOfType(List JavaDoc.class);
45         assertNotNull(list1);
46         assertNotNull(list2);
47         assertTrue(list1 == list2);
48     }
49
50
51     public void testComponentAdaptersListsAreNotCached() {
52         MutablePicoContainer parent = new DefaultPicoContainer();
53         CachingPicoContainer pico = new CachingPicoContainer(new ConstructorInjectionComponentAdapterFactory(), parent);
54         pico.registerComponentImplementation(List JavaDoc.class, ArrayList JavaDoc.class);
55         List JavaDoc list1 = (List JavaDoc) pico.getComponentAdaptersOfType(List JavaDoc.class);
56         List JavaDoc list2 = (List JavaDoc) pico.getComponentAdaptersOfType(List JavaDoc.class);
57         assertNotNull(list1);
58         assertNotNull(list2);
59         assertTrue(list1 != list2);
60     }
61     
62
63     public void testDelegationOfVerify() {
64         DefaultPicoContainer mpc = new DefaultPicoContainer();
65         mpc.registerComponentImplementation(Iterator JavaDoc.class, UnsatisfiableIterator.class);
66         CachingPicoContainer pico = new CachingPicoContainer(mpc);
67         pico.verify();
68
69     }
70     
71 }
72
Popular Tags