X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fadapters%2FDefaultContainerTest.java;fp=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fadapters%2FDefaultContainerTest.java;h=07143e3eeee14371cf7f5f31ff3e7aade2c288fc;hb=b2c41b5ad0368ce28715001b6a06381b9eaf7c49;hp=913e39700e04a0dda6a8a72869825ca5fe17b567;hpb=370665c0e3ee47aa84858ced493cd8b2dbb2811e;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..07143e3e 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 @@ -36,4 +36,38 @@ 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"); + + X8 x8 = new X8(null); + EVENT_TRACKER.clear(); + + DefaultContainer container = new DefaultContainer("top").addComponent( + "x1", x1Config).addComponent("x4", X4.class).addComponent("x8", x8); + + 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); + } }