X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FContainerTest.java;h=7eb66757772fb31d1746e6348855c242d1eaf94e;hb=c210d3c212308d3c5a84f4c19e84a95175e4f172;hp=74eb43101d0fa461b30e8bd4b31dcf25fd68f479;hpb=2acd9d7b630b9978a504a5a415f25ea2efe18c10;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 74eb4310..7eb66757 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 @@ -15,6 +15,7 @@ */ package org.wamblee.system.core; +import java.io.IOException; import java.io.Serializable; import java.util.Arrays; @@ -84,6 +85,24 @@ public class ContainerTest extends TestCase { environment, application }, new ProvidedInterface[0], new RequiredInterface[0]); + Scope scope = container.start(); + assertTrue(container.isSealed()); + AssertionUtils.assertEquals(new String[] { "start.environment", + "start.application" }, _tracker.getEvents( + Thread.currentThread()).toArray(new String[0])); + assertEquals(0, scope.getProvidedInterfaces().length); + + assertEquals(environment.getString(), application.getString()); + assertEquals(environment.getInteger(), application.getInteger()); + + } + + public void testEnvironmentApplicationSimpleConstructor() { + Environment environment = new Environment(_tracker); + Application application = new Application(_tracker); + Container container = new Container("root"). + addComponent(environment).addComponent(application); + Scope scope = container.start(); AssertionUtils.assertEquals(new String[] { "start.environment", "start.application" }, _tracker.getEvents( @@ -363,4 +382,32 @@ public class ContainerTest extends TestCase { assertSame(env.getProvidedInterfaces()[0], application.getRequiredInterfaces()[0].getProvider()); assertSame(env.getProvidedInterfaces()[1], application.getRequiredInterfaces()[1].getProvider()); } + + public void testSealed() { + final Container container = new Container("xx"); + assertFalse(container.isSealed()); + container.start(); + assertTrue(container.isSealed()); + + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.addComponent(new Application()); + } + }, SystemAssemblyException.class); + + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.addProvidedInterface(new DefaultProvidedInterface("xx", String.class)); + } + }, SystemAssemblyException.class); + + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.addRequiredInterface(new DefaultRequiredInterface("xx", String.class)); + } + }, SystemAssemblyException.class); + } }