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 * Idea by Rachel Davies, Original code by Stacy Curl * 9 *****************************************************************************/ 10 11 package org.picocontainer.defaults; 12 13 import junit.framework.TestCase; 14 import org.picocontainer.PicoInitializationException; 15 import org.picocontainer.testmodel.AlternativeTouchable; 16 import org.picocontainer.testmodel.SimpleTouchable; 17 import org.picocontainer.testmodel.Touchable; 18 19 public class DefaultPicoContainerUnregisterComponentTestCase extends TestCase { 20 private DefaultPicoContainer picoContainer; 21 22 protected void setUp() throws Exception { 23 picoContainer = new DefaultPicoContainer.Default(); 24 } 25 26 public void testCannotInstantiateAnUnregisteredComponent() throws DuplicateComponentKeyRegistrationException, AssignabilityRegistrationException, NotConcreteRegistrationException, PicoInvocationTargetInitializationException, PicoInitializationException { 27 picoContainer.registerComponent(Touchable.class, SimpleTouchable.class); 28 picoContainer.unregisterComponent(Touchable.class); 29 30 picoContainer.instantiateComponents(); 31 32 assertTrue(picoContainer.getComponents().isEmpty()); 33 } 34 35 public void testCanInstantiateReplacedComponent() throws DuplicateComponentKeyRegistrationException, AssignabilityRegistrationException, NotConcreteRegistrationException, PicoInvocationTargetInitializationException, PicoInitializationException { 36 picoContainer.registerComponent(Touchable.class, SimpleTouchable.class); 37 picoContainer.unregisterComponent(Touchable.class); 38 39 picoContainer.registerComponent(Touchable.class, AlternativeTouchable.class); 40 41 picoContainer.instantiateComponents(); 42 43 assertEquals("Container should container 1 component", 44 1, picoContainer.getComponents().size()); 45 } 46 47 public void testUnregisterAfterInstantiateComponents() throws NotConcreteRegistrationException, AssignabilityRegistrationException, PicoInitializationException, DuplicateComponentKeyRegistrationException, PicoInvocationTargetInitializationException { 48 picoContainer.registerComponent(Touchable.class, SimpleTouchable.class); 49 picoContainer.instantiateComponents(); 50 picoContainer.unregisterComponent(Touchable.class); 51 assertNull(picoContainer.getComponent(Touchable.class)); 52 } 53 54 public void testReplacedInstantiatedComponentHasCorrectClass() throws DuplicateComponentKeyRegistrationException, AssignabilityRegistrationException, NotConcreteRegistrationException, PicoInvocationTargetInitializationException, PicoInitializationException { 55 picoContainer.registerComponent(Touchable.class, SimpleTouchable.class); 56 picoContainer.unregisterComponent(Touchable.class); 57 58 picoContainer.registerComponent(Touchable.class, AlternativeTouchable.class); 59 60 picoContainer.instantiateComponents(); 61 62 Object component = picoContainer.getComponents().iterator().next(); 63 64 assertEquals(AlternativeTouchable.class, component.getClass()); 65 } 66 67 // public void testCanInstantiateOriginalComponentThenReplaceAndInstantiateReplacement() throws DuplicateComponentKeyRegistrationException, AssignabilityRegistrationException, NotConcreteRegistrationException, PicoInvocationTargetInitializationException, PicoInitializationException { 68 // picoContainer.registerComponent(Touchable.class, SimpleTouchable.class); 69 // picoContainer.instantiateComponents(); 70 // 71 // picoContainer.unregisterComponent(Touchable.class); 72 // picoContainer.registerComponent(Touchable.class, AlternativeTouchable.class); 73 // 74 // picoContainer.instantiateComponents(); 75 // 76 // assertEquals("Container should contain 2 components: the original and the replacement", 2, 77 // picoContainer.getComponents().size()); 78 // } 79 }

This page was automatically generated by Maven