X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fadapters%2FDefaultContainerTest.java;h=938a12228763493b6596d13a832e6a7c1bc9e98c;hb=d4f4682056f4fdf0c74a174cd636f278423f6883;hp=913e39700e04a0dda6a8a72869825ca5fe17b567;hpb=fddbe9b130633c7d8925f2580afea65767d1d615;p=utils diff --git a/system/general/src/test/java/org/wamblee/system/adapters/DefaultContainerTest.java b/system/general/src/test/java/org/wamblee/system/adapters/DefaultContainerTest.java index 913e3970..938a1222 100644 --- a/system/general/src/test/java/org/wamblee/system/adapters/DefaultContainerTest.java +++ b/system/general/src/test/java/org/wamblee/system/adapters/DefaultContainerTest.java @@ -23,9 +23,13 @@ public class DefaultContainerTest extends AdapterTestCase { public void testConstructorInjection() { ClassConfiguration x1Config = new ClassConfiguration(X1.class); x1Config.getConstructorConfig().getParameters().setValue(0, "hello"); + x1Config.getObjectConfig().getSetterConfig().initAllSetters(); + + ClassConfiguration x4Config = new ClassConfiguration(X4.class); + x4Config.getObjectConfig().getSetterConfig().initAllSetters(); DefaultContainer container = new DefaultContainer("top").addComponent( - "x1", x1Config).addComponent("x4", X4.class); + "x1", x1Config).addComponent("x4", x4Config); Scope scope = container.start(); AssertionUtils.assertEquals(new String[] { "x1(hello)", "x4(x1)" }, @@ -36,4 +40,45 @@ public class DefaultContainerTest extends AdapterTestCase { obj = scope.getRuntime("x4"); assertTrue(obj instanceof X4); } + + public void testConstructorInjectionAndSetterInjection() { + ClassConfiguration x1Config = new ClassConfiguration(X1.class); + x1Config.getConstructorConfig().getParameters().setValue(0, "hello"); + x1Config.getObjectConfig().getSetterConfig().initAllSetters(); + + X8 x8 = new X8(null); + EVENT_TRACKER.clear(); + + ClassConfiguration x4Config = new ClassConfiguration(X4.class); + x4Config.getObjectConfig().getSetterConfig().initAllSetters(); + + ObjectConfiguration x8Config = new ObjectConfiguration(X8.class); + x8Config.getSetterConfig().initAllSetters(); + + DefaultContainer container = new DefaultContainer("top").addComponent( + "x1", x1Config).addComponent("x4", x4Config).addComponent("x8", x8, x8Config); + + Scope scope = container.start(); + AssertionUtils.assertEquals(new String[] { "x1(hello)", "x4(x1)", + "x8.setX4(x4)"}, + EVENT_TRACKER.getEvents(Thread.currentThread()).toArray()); + + Object obj1 = scope.getRuntime("x1"); + assertTrue(obj1 instanceof X1); + Object obj4 = scope.getRuntime("x4"); + assertTrue(obj4 instanceof X4); + Object obj8 = scope.getRuntime("x8"); + assertSame(x8, obj8); + assertSame(obj4, x8.getX4()); + } + + public void testWrongObjectType() { + final DefaultContainer container = new DefaultContainer("top"); + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.addComponent("x", "y", new ObjectConfiguration(Integer.class)); + } + }, IllegalArgumentException.class); + } }