1 package org.picocontainer.defaults; 2 3 import junit.framework.TestCase; 4 import org.picocontainer.testmodel.Touchable; 5 import org.picocontainer.testmodel.SimpleTouchable; 6 import org.picocontainer.testmodel.DependsOnTouchable; 7 import org.picocontainer.internals.ConstantParameter; 8 import org.picocontainer.internals.ComponentParameter; 9 import org.picocontainer.internals.ComponentSpecification; 10 import org.picocontainer.internals.Parameter; 11 import org.picocontainer.PicoIntrospectionException; 12 import org.picocontainer.PicoInitializationException; 13 import org.picocontainer.PicoRegistrationException; 14 import org.picocontainer.PicoInstantiationException; 15 16 17 /*** 18 * @author Jon Tirsen (tirsen@codehaus.org) 19 * @version $Revision: 1.7 $ 20 */ 21 public class ParameterTestCase extends TestCase { 22 public void testComponentSpecificationHandlesPrimtiveTypes() { 23 assertTrue(ComponentSpecification.isAssignableFrom(Integer.class, Integer.TYPE)); 24 assertTrue(ComponentSpecification.isAssignableFrom(Integer.TYPE, Integer.class)); 25 assertTrue(ComponentSpecification.isAssignableFrom(String.class, String.class)); 26 assertFalse(ComponentSpecification.isAssignableFrom(Integer.class, String.class)); 27 } 28 29 static class TestClass { 30 public TestClass(String s1, String s2, String s3) { 31 } 32 } 33 34 public void testComponentSpecificationCreatesDefaultParameters() throws PicoIntrospectionException { 35 ComponentSpecification componentSpec = 36 new ComponentSpecification(new DefaultComponentFactory(), null, TestClass.class); 37 assertEquals(3, componentSpec.getParameters().length); 38 } 39 40 public void testComponentParameterFetches() throws PicoInstantiationException, PicoRegistrationException, PicoInitializationException { 41 DefaultComponentRegistry dcr = new DefaultComponentRegistry(); 42 DefaultPicoContainer pico = new DefaultPicoContainer.WithComponentRegistry(dcr); 43 pico.registerComponent(Touchable.class, SimpleTouchable.class); 44 ComponentParameter parameter = new ComponentParameter(); 45 46 assertNull(pico.getComponent(Touchable.class)); 47 Touchable Touchable = (Touchable) parameter.resolve(dcr, null, Touchable.class); 48 assertNotNull(pico.getComponent(Touchable.class)); 49 assertSame(Touchable, pico.getComponent(Touchable.class)); 50 } 51 52 public void testConstantParameter() throws PicoInstantiationException { 53 Object value = new Object(); 54 ConstantParameter parameter = new ConstantParameter(value); 55 assertSame(value, parameter.resolve(null, null, null)); 56 } 57 58 public void testFredWithTouchableSpecifiedAsConstant() throws PicoRegistrationException, PicoInitializationException { 59 DefaultPicoContainer pico = new DefaultPicoContainer.Default(); 60 SimpleTouchable touchable = new SimpleTouchable(); 61 pico.registerComponent(DependsOnTouchable.class, DependsOnTouchable.class, new Parameter[]{ 62 new ConstantParameter(touchable) 63 }); 64 pico.instantiateComponents(); 65 assertTrue(touchable.wasTouched); 66 } 67 68 }

This page was automatically generated by Maven