From: erik <erik@77661180-640e-0410-b3a8-9f9b13e6d0e0>
Date: Sun, 8 Jun 2008 11:29:31 +0000 (+0000)
Subject: (no commit message)
X-Git-Tag: wamblee-utils-0.2~1^2~82
X-Git-Url: http://wamblee.org/gitweb/?a=commitdiff_plain;h=739d47f02725c2e407fe729c3529decaf8deb100;p=utils

---

diff --git a/system/general/pom.xml b/system/general/pom.xml
index a08f0844..f43d1650 100644
--- a/system/general/pom.xml
+++ b/system/general/pom.xml
@@ -1,6 +1,5 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
   <parent>
     <groupId>org.wamblee</groupId>
@@ -32,4 +31,4 @@
     </dependency>
   </dependencies>
 
-</project>
+</project>
\ No newline at end of file
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 7aed9f6b..41ccede4 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
@@ -463,8 +463,70 @@ 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
diff --git a/system/general/src/test/java/org/wamblee/system/core/Environment.java b/system/general/src/test/java/org/wamblee/system/core/Environment.java
index d2c05271..4b791d05 100644
--- a/system/general/src/test/java/org/wamblee/system/core/Environment.java
+++ b/system/general/src/test/java/org/wamblee/system/core/Environment.java
@@ -30,9 +30,12 @@ public class Environment extends AbstractComponent<Object> {
 				new DefaultProvidedInterface(aPrefix + "datasource", String.class),
 				new DefaultProvidedInterface(aPrefix + "integer", Integer.class) };
 	}
+	
+	private static int COUNT = 0; 
 
 	private EventTracker<String> _tracker;
 	private double _random;
+	private int _integer; 
 
 	public Environment() {
 		this("environment");
@@ -45,6 +48,7 @@ public class Environment extends AbstractComponent<Object> {
 	public Environment(String aName, String aPrefix) {
         super(aName, provided(aPrefix), new RequiredInterface[0]);
         _random = Math.random();
+        _integer = COUNT++;
     }
 
 
@@ -55,7 +59,7 @@ public class Environment extends AbstractComponent<Object> {
 	}
 
 	public Integer getInteger() {
-		return 2;
+		return _integer;
 	}
 
 	public String getString() {