X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fadapters%2FDefaultContainerTest.java;h=a3709c9553a1262a572c79e55325e200357573a1;hb=49ce7cb8387601982d5e6ef186ce206d38f6e3d7;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..a3709c95 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 @@ -1,5 +1,5 @@ /* - * Copyright 2008 the original author or authors. + * Copyright 2005-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,24 +16,78 @@ package org.wamblee.system.adapters; import org.wamblee.system.core.Scope; + import org.wamblee.test.AssertionUtils; +/** + * + * @author $author$ + * @version $Revision$ + */ 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)" }, - EVENT_TRACKER.getEvents(Thread.currentThread()).toArray()); + getEventTracker().getEvents(Thread.currentThread()).toArray()); Object obj = scope.getRuntime("x1"); assertTrue(obj instanceof X1); 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); + getEventTracker().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)" }, getEventTracker().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); + } }