X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FContainerTest.java;h=74eb43101d0fa461b30e8bd4b31dcf25fd68f479;hb=dea786c9d49228a37cb5fd5b4113b86d9f6cddbf;hp=bcca8cc11bb823c37f01232e81dc78dc2767c76f;hpb=e73828b054b0734ddce0ff9194fca75ed3c98b7a;p=utils diff --git a/system/general/src/test/java/org/wamblee/system/core/ContainerTest.java b/system/general/src/test/java/org/wamblee/system/core/ContainerTest.java index bcca8cc1..74eb4310 100644 --- a/system/general/src/test/java/org/wamblee/system/core/ContainerTest.java +++ b/system/general/src/test/java/org/wamblee/system/core/ContainerTest.java @@ -24,6 +24,7 @@ import org.easymock.classextension.ConstructorArgs; import org.easymock.classextension.EasyMock; import org.easymock.classextension.IMocksControl; import org.wamblee.test.AssertionUtils; +import org.wamblee.test.EasyMockMatchers; import org.wamblee.test.EventTracker; public class ContainerTest extends TestCase { @@ -83,14 +84,11 @@ public class ContainerTest extends TestCase { environment, application }, new ProvidedInterface[0], new RequiredInterface[0]); - container.start(); + Scope scope = container.start(); AssertionUtils.assertEquals(new String[] { "start.environment", "start.application" }, _tracker.getEvents( Thread.currentThread()).toArray(new String[0])); - ProvidedInterface[] envServices = environment.getRunningInterfaces(); - assertEquals(2, envServices.length); - ProvidedInterface[] appServices = application.getRunningInterfaces(); - assertEquals(0, appServices.length); + assertEquals(0, scope.getProvidedInterfaces().length); assertEquals(environment.getString(), application.getString()); assertEquals(environment.getInteger(), application.getInteger()); @@ -120,7 +118,7 @@ public class ContainerTest extends TestCase { Container system = new Container("all", new Component[] { environment, application }, new ProvidedInterface[0], new RequiredInterface[0]); - system.start(); + Scope runtime = system.start(); RequiredInterface[] required = system.getRequiredInterfaces(); assertEquals(0, required.length); ProvidedInterface[] provided = system.getProvidedInterfaces(); @@ -131,7 +129,7 @@ public class ContainerTest extends TestCase { Thread.currentThread()).toArray(new String[0])); _tracker.clear(); - system.stop(); + system.stop(runtime); AssertionUtils.assertEquals(new String[] { "stop.application", "stop.environment" }, _tracker .getEvents(Thread.currentThread()).toArray(new String[0])); @@ -206,7 +204,7 @@ public class ContainerTest extends TestCase { Container system = new Container("all", new Component[] { application }, new ProvidedInterface[0], application.getRequiredInterfaces()); - environment.start(); + environment.start(new DefaultScope(new ProvidedInterface[0])); system.getRequiredInterfaces()[0].setProvider(environment .getProvidedInterfaces()[0]); system.getRequiredInterfaces()[1].setProvider(environment @@ -256,9 +254,9 @@ public class ContainerTest extends TestCase { Environment environment = new Environment(_tracker); Application application = control.createMock(Application.class, new ConstructorArgs(Application.class.getConstructor()), - Application.class.getDeclaredMethod("doStart")); + Application.class.getDeclaredMethod("doStart", Scope.class)); - application.doStart(); + application.doStart(EasyMockMatchers.anyObject(Scope.class)); EasyMock.expectLastCall().andThrow(new RuntimeException()); control.replay(); @@ -272,10 +270,6 @@ public class ContainerTest extends TestCase { AssertionUtils.assertEquals(new String[] { "start.environment", "stop.environment" }, _tracker.getEvents( Thread.currentThread()).toArray(new String[0])); - ProvidedInterface[] envServices = environment.getRunningInterfaces(); - assertEquals(0, envServices.length); - assertNull(environment.getProvidedInterfaces()[0].getImplementation()); - assertNull(environment.getProvidedInterfaces()[0].getImplementation()); return; } fail(); @@ -289,17 +283,17 @@ public class ContainerTest extends TestCase { // Application 1 will throw an exception while stopping. Application application1 = control.createMock(Application.class, new ConstructorArgs(Application.class.getConstructor()), - Application.class.getDeclaredMethod("doStop")); + Application.class.getDeclaredMethod("doStop", Object.class)); - application1.doStop(); + application1.doStop(EasyMock.anyObject()); EasyMock.expectLastCall().andThrow(new RuntimeException()); // application 2 will throw an exception while starting Application application2 = control.createMock(Application.class, new ConstructorArgs(Application.class.getConstructor()), - Application.class.getDeclaredMethod("doStart")); + Application.class.getDeclaredMethod("doStart", Scope.class)); - application2.doStart(); + application2.doStart(EasyMockMatchers.anyObject(Scope.class)); EasyMock.expectLastCall().andThrow(new RuntimeException()); control.replay(); @@ -314,10 +308,6 @@ public class ContainerTest extends TestCase { AssertionUtils.assertEquals(new String[] { "start.environment", "stop.environment" }, _tracker.getEvents( Thread.currentThread()).toArray(new String[0])); - ProvidedInterface[] envServices = environment.getRunningInterfaces(); - assertEquals(0, envServices.length); - assertNull(environment.getProvidedInterfaces()[0].getImplementation()); - assertNull(environment.getProvidedInterfaces()[0].getImplementation()); return; } fail(); @@ -332,7 +322,10 @@ public class ContainerTest extends TestCase { env.getProvidedInterfaces()[0]); container.getRequiredInterfaces()[1].setProvider( env.getProvidedInterfaces()[1]); - container.start(); + Scope external = new DefaultScope(env.getProvidedInterfaces()); + env.start(external); + + container.start(external); assertSame(env.getProvidedInterfaces()[0], container.getRequiredInterfaces()[0].getProvider()); assertSame(env.getProvidedInterfaces()[1], container.getRequiredInterfaces()[1].getProvider()); assertSame(env.getProvidedInterfaces()[0], application.getRequiredInterfaces()[0].getProvider()); @@ -345,8 +338,10 @@ public class ContainerTest extends TestCase { new ProvidedInterface[0], Application.required(true)); Environment env = new Environment(); container.getRequiredInterfaces()[0].setProvider( - env.getProvidedInterfaces()[0]); - container.start(); + env.getProvidedInterfaces()[0]); + Scope external = new DefaultScope(new ProvidedInterface[0]); + external.publishInterface(env.getProvidedInterfaces()[0], env.getString()); + container.start(external); assertSame(env.getProvidedInterfaces()[0], container.getRequiredInterfaces()[0].getProvider()); assertNull(container.getRequiredInterfaces()[1].getProvider()); assertSame(env.getProvidedInterfaces()[0], application.getRequiredInterfaces()[0].getProvider());