X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=trunk%2Fsystem%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcontainer%2FContainerTest.java;h=f678638843fbacc8e41421bfe54600dd3a5b555b;hb=050ff03da91723fd8ca8bfbd3cf260ac9fdde807;hp=7aed9f6b98c3469f4e2368fcf9ec132c8750bddd;hpb=5197773472d4b90864f3ba94d6dce3a27b70ce0f;p=utils diff --git a/trunk/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java b/trunk/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java index 7aed9f6b..f6786388 100644 --- a/trunk/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java +++ b/trunk/system/general/src/test/java/org/wamblee/system/container/ContainerTest.java @@ -463,9 +463,71 @@ public class ContainerTest extends TestCase { container.connectRequiredProvided("app", null, "env1", null); container.start(); assertEquals(env1.getString(), app.getString()); + assertEquals(env1.getInteger(), app.getInteger()); assertFalse(env2.getString().equals(app.getString())); + assertFalse(env2.getInteger().equals(app.getInteger())); + } + + public void testRestrictionWithFromAndToInterfaceName() { + Environment env1 = new Environment("env1"); + Environment env2 = new Environment("env2"); + Application app = new Application("app"); + Container container = new Container("top").addComponent(env1) + .addComponent(env2).addComponent(app); + container.connectRequiredProvided("app", app.getRequiredInterfaces().get(0).getName(), + "env1", env1.getProvidedInterfaces().get(0).getName()); + container.connectRequiredProvided("app", app.getRequiredInterfaces().get(1).getName(), + "env2", env2.getProvidedInterfaces().get(1).getName()); + container.start(); + assertEquals(env1.getString(), app.getString()); + assertEquals(env2.getInteger(), app.getInteger()); + assertFalse(env2.getString().equals(app.getString())); + assertFalse(env1.getInteger().equals(app.getInteger())); + } + + public void testRestrictionWrongComponentNames() { + Environment env1 = new Environment("env1"); + Environment env2 = new Environment("env2"); + Application app = new Application("app"); + final Container container = new Container("top").addComponent(env1) + .addComponent(env2).addComponent(app); + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.connectRequiredProvided("app2", null, "env1", null); + } + }, SystemAssemblyException.class); + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.connectRequiredProvided("app", null, "env3", null); + } + }, SystemAssemblyException.class); + } + + public void testRestrictionWrongInterfaceNames() { + final Environment env1 = new Environment("env1"); + Environment env2 = new Environment("env2"); + final Application app = new Application("app"); + final Container container = new Container("top").addComponent(env1) + .addComponent(env2).addComponent(app); + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.connectRequiredProvided("app", + app.getRequiredInterfaces().get(0).getName() + "xxx", "env1", null); + } + }, SystemAssemblyException.class); + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.connectRequiredProvided("app", null, "env1", + env1.getProvidedInterfaces().get(0).getName() + "yyy"); + } + }, SystemAssemblyException.class); } + public void testProvidedInDifferentScopes() { // Scoping problem occurred. Externally and internally provided // components clashed @@ -569,6 +631,45 @@ public class ContainerTest extends TestCase { assertEquals("y-value", app.getString()); } + + public void testNonUniqueRequiredInterfaceWrongNames() { + final Container container = new Container("top"); + container.addRequiredInterface(new DefaultRequiredInterface("i", + Integer.class)); + container.addRequiredInterface(new DefaultRequiredInterface("x", + String.class)); + container.addRequiredInterface(new DefaultRequiredInterface("y", + String.class)); + + final Application app = new Application("1"); + container.addComponent(app); + + // wrong component name. + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.connectExternalRequired("2", "x", "y"); + } + }, SystemAssemblyException.class); + + // Wrong interface name of component. + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.connectExternalRequired("1", + app.getRequiredInterfaces().get(0).getName() + "xxx", "y"); + } + }, SystemAssemblyException.class); + + // Wrong external interface name of container + AssertionUtils.assertException(new AssertionUtils.ErroneousCode() { + @Override + public void run() throws Exception { + container.connectExternalRequired("1", + app.getRequiredInterfaces().get(0).getName(), "z"); + } + }, SystemAssemblyException.class); + } public void testNonUniqueProvidedInterface() {