connectExternalRequired no validates.
[utils] / system / general / src / test / java / org / wamblee / system / container / ContainerTest.java
index 41ccede4f6cb5c72efcb1cacaf5a1567b0215dd8..f678638843fbacc8e41421bfe54600dd3a5b555b 100644 (file)
@@ -631,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() {