X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcontainer%2FContainerTest.java;h=cc18db2e50bac0a1c11fe3886fc10583db8e393c;hb=9edb5809a67730abf512ed68ecd8d3cf47ceb0b1;hp=156d4dd6f4222c6748d414287d9a4d71c7d87c1c;hpb=083acc90cf96997244a46066f26f468c6a9420ae;p=utils diff --git a/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java b/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java index 156d4dd6..cc18db2e 100644 --- a/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java +++ b/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java @@ -567,4 +567,36 @@ public class ContainerTest extends TestCase { assertEquals("y-value", app.getString()); } + + public void testNonUniqueProvidedInterface() { + + final Container container = new Container("top").addProvidedInterface(new DefaultProvidedInterface("external", String.class)); + Environment env1 = new Environment("env1"); + Environment env2 = new Environment("env2"); + + + container.addComponent(env1); + container.addComponent(env2); + + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.start(); + } + }, SystemAssemblyException.class); + + // now choose env2 + + container.connectExternalProvided(container.getProvidedInterfaces()[0].getName(), + env2.getName(), env2.getProvidedInterfaces()[0].getName()); + + Scope scope = container.start(); + + // check the value of the provided interface of the container + + String value = scope.getInterfaceImplementation(container.getProvidedInterfaces()[0], String.class); + assertNotNull(value); + assertEquals(value, env2.getString()); + assertFalse(value.equals(env1.getString())); + } }