X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2FSystemAssemblerTest.java;h=7bbf08bf921b5ee5b294c74d2d6c75e236a877c3;hb=0c19405988efb348c1bc1636b8bde49a6776a743;hp=d862b15e3eb4d08fbe2f1a64b89ebc60fa7b8425;hpb=c0db90e6185ec09f7ff3fd1031470330de352a77;p=utils diff --git a/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java b/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java index d862b15e..7bbf08bf 100644 --- a/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java +++ b/system/general/src/test/java/org/wamblee/system/SystemAssemblerTest.java @@ -6,14 +6,18 @@ import java.util.Arrays; import org.wamblee.system.Component.Status; import org.wamblee.test.AssertionUtils; +import org.wamblee.test.EventTracker; import junit.framework.TestCase; public class SystemAssemblerTest extends TestCase { + private EventTracker _tracker; + @Override protected void setUp() throws Exception { super.setUp(); + _tracker = new EventTracker(); } private static class MyMultiple implements Serializable, Runnable { @@ -28,12 +32,12 @@ public class SystemAssemblerTest extends TestCase { Runnable.class); RequiredInterface req2 = new DefaultRequiredInterface("name", Serializable.class); - ProvidedInterface prov1 = new DefaultProvidedInterface( - "name", Runnable.class); - ProvidedInterface prov2 = new DefaultProvidedInterface( - "name", Serializable.class); - ProvidedInterface prov3 = new DefaultProvidedInterface( - "name", MyMultiple.class); + ProvidedInterface prov1 = new DefaultProvidedInterface("name", + Runnable.class); + ProvidedInterface prov2 = new DefaultProvidedInterface("name", + Serializable.class); + ProvidedInterface prov3 = new DefaultProvidedInterface("name", + MyMultiple.class); AssertionUtils.assertEquals(new RequiredInterface[] { req1 }, SystemAssembler.filterRequiredServices(prov1, Arrays @@ -57,19 +61,19 @@ public class SystemAssemblerTest extends TestCase { } public void testEnvironmentApplication() { - Component environment = new Environment(); - Component application = new Application(); + Component environment = new Environment(_tracker); + Component application = new Application(_tracker); SystemAssembler assembler = new SystemAssembler(new Component[] { environment, application }, new ProvidedInterface[0]); assembler.start(); + AssertionUtils.assertEquals(new String[] { "start.environment", + "start.application" }, _tracker.getEvents( + Thread.currentThread()).toArray(new String[0])); ProvidedInterface[] envServices = environment.getRunningServices(); assertEquals(2, envServices.length); ProvidedInterface[] appServices = environment.getRunningServices(); assertEquals(2, appServices.length); - - // TODO test stopping!!!!!! - environment.stop(); - application.stop(); + } public void testApplicationEnvironment() { @@ -87,10 +91,12 @@ public class SystemAssemblerTest extends TestCase { } public void testComposite() { - Component environment = new Environment(); - Component application = new Application(); + Component environment = new Environment(_tracker); + Component application = new Application(_tracker); + assertEquals(0, _tracker.getEventCount()); assertEquals(Status.NOT_STARTED, environment.getStatus()); assertEquals(Status.NOT_STARTED, application.getStatus()); + Container system = new Container("all", new Component[] { environment, application }, new ProvidedInterface[0], new RequiredInterface[0]); @@ -103,20 +109,30 @@ public class SystemAssemblerTest extends TestCase { assertEquals(Status.RUNNING, environment.getStatus()); assertEquals(Status.RUNNING, application.getStatus()); assertEquals(Status.RUNNING, system.getStatus()); - + + AssertionUtils.assertEquals( + new String[] { "start.environment", "start.application" }, + _tracker.getEvents(Thread.currentThread()).toArray(new String[0])); + _tracker.clear(); + system.stop(); assertEquals(Status.STOPPED, environment.getStatus()); assertEquals(Status.STOPPED, application.getStatus()); assertEquals(Status.STOPPED, system.getStatus()); + + AssertionUtils.assertEquals( + new String[] { "stop.application", "stop.environment" }, + _tracker.getEvents(Thread.currentThread()).toArray(new String[0])); + + } public void testCompositeWithWrongProvidedInfo() { try { Component environment = new Environment(); Component application = new Application(); - Container system = new Container( - "all", - new Component[] { environment, application }, + Container system = new Container("all", new Component[] { + environment, application }, new ProvidedInterface[] { new DefaultProvidedInterface( "string", String.class) }, new DefaultRequiredInterface[0]); @@ -130,10 +146,8 @@ public class SystemAssemblerTest extends TestCase { try { Component environment = new Environment(); Component application = new Application(); - Container system = new Container( - "all", - new Component[] { environment, application }, - new ProvidedInterface[0], + Container system = new Container("all", new Component[] { + environment, application }, new ProvidedInterface[0], new RequiredInterface[] { new DefaultRequiredInterface( "string", String.class) }); system.start("root"); @@ -146,14 +160,12 @@ public class SystemAssemblerTest extends TestCase { public void testCompositeWithSuperfluousRequiredInfo() { Component environment = new Environment(); Component application = new Application(); - Container system = new Container( - "all", - new Component[] { environment, application }, - new ProvidedInterface[0], + Container system = new Container("all", new Component[] { environment, + application }, new ProvidedInterface[0], new RequiredInterface[] { new DefaultRequiredInterface( "string", String.class) }); - system.getRequiredServices()[0].setProvider( - new DefaultProvidedInterface("hallo", String.class)); + system.getRequiredServices()[0] + .setProvider(new DefaultProvidedInterface("hallo", String.class)); system.start("root"); RequiredInterface[] required = system.getRequiredServices(); assertEquals(1, required.length); @@ -184,9 +196,11 @@ public class SystemAssemblerTest extends TestCase { new Component[] { application }, new ProvidedInterface[0], application.getRequiredServices()); environment.start("env"); - system.getRequiredServices()[0].setProvider(environment.getProvidedServices()[0]); - system.getRequiredServices()[1].setProvider(environment.getProvidedServices()[1]); - + system.getRequiredServices()[0].setProvider(environment + .getProvidedServices()[0]); + system.getRequiredServices()[1].setProvider(environment + .getProvidedServices()[1]); + system.start("root"); RequiredInterface[] required = system.getRequiredServices(); assertEquals(2, required.length);