(no commit message)
[utils] / system / general / src / test / java / org / wamblee / system / core / ContainerTest.java
index dfd8ed58fc87484130ba82cb307589701a3c6d52..86d5760b430918fbfd3b5bf094c306f9b622910e 100644 (file)
@@ -161,7 +161,7 @@ public class ContainerTest extends TestCase {
                        Container system = new Container("all", new Component[] {
                                        environment, application },
                                        new ProvidedInterface[] { new DefaultProvidedInterface(
-                                                       "string", String.class) },
+                                                       "float", Float.class) },
                                        new DefaultRequiredInterface[0]);
                } catch (SystemAssemblyException e) {
                        return;
@@ -190,9 +190,9 @@ public class ContainerTest extends TestCase {
                Container system = new Container("all", new Component[] { environment,
                                application }, new ProvidedInterface[0],
                                new RequiredInterface[] { new DefaultRequiredInterface(
-                                               "string", String.class) });
+                                               "float", Float.class) });
                system.getRequiredInterfaces()[0]
-                               .setProvider(new DefaultProvidedInterface("hallo", String.class));
+                               .setProvider(new DefaultProvidedInterface("hallo", Float.class));
                system.start();
                RequiredInterface[] required = system.getRequiredInterfaces();
                assertEquals(1, required.length);
@@ -290,6 +290,8 @@ public class ContainerTest extends TestCase {
                                        Thread.currentThread()).toArray(new String[0]));
                        ProvidedInterface[] envServices = environment.getRunningInterfaces();
                        assertEquals(0, envServices.length);
+                       assertNull(environment.getProvidedInterfaces()[0].getImplementation());
+                       assertNull(environment.getProvidedInterfaces()[0].getImplementation());
                        return;
                }
                fail();
@@ -330,8 +332,56 @@ public class ContainerTest extends TestCase {
                                        Thread.currentThread()).toArray(new String[0]));
                        ProvidedInterface[] envServices = environment.getRunningInterfaces();
                        assertEquals(0, envServices.length);
+                       assertNull(environment.getProvidedInterfaces()[0].getImplementation());
+                       assertNull(environment.getProvidedInterfaces()[0].getImplementation());
                        return;
                }
                fail();
        }
+       
+       public void testOptionalRequiredInterfaceProvidedOptionalInternal() {
+               Application application = new Application(true);
+               Container container = new Container("top", new Component[] { application }, 
+                               new ProvidedInterface[0], Application.required(true));
+               Environment env = new Environment();
+               container.getRequiredInterfaces()[0].setProvider(
+                               env.getProvidedInterfaces()[0]); 
+               container.getRequiredInterfaces()[1].setProvider(
+                               env.getProvidedInterfaces()[1]);
+           container.start();
+           assertSame(env.getProvidedInterfaces()[0], container.getRequiredInterfaces()[0].getProvider());
+           assertSame(env.getProvidedInterfaces()[1], container.getRequiredInterfaces()[1].getProvider());
+           assertSame(env.getProvidedInterfaces()[0], application.getRequiredInterfaces()[0].getProvider());
+           assertSame(env.getProvidedInterfaces()[1], application.getRequiredInterfaces()[1].getProvider());
+       }
+       
+       public void testOptionalRequiredInterfaceNotProvidedOptionalInternal() {
+               Application application = new Application(true);
+               Container container = new Container("top", new Component[] { application }, 
+                               new ProvidedInterface[0], Application.required(true));
+               Environment env = new Environment();
+               container.getRequiredInterfaces()[0].setProvider(
+                               env.getProvidedInterfaces()[0]); 
+           container.start();
+           assertSame(env.getProvidedInterfaces()[0], container.getRequiredInterfaces()[0].getProvider());
+           assertNull(container.getRequiredInterfaces()[1].getProvider());
+           assertSame(env.getProvidedInterfaces()[0], application.getRequiredInterfaces()[0].getProvider());
+           assertNull(application.getRequiredInterfaces()[1].getProvider());
+       }
+       
+       public void testOptionalRequiredInterfaceProvidedMandatoryInternal() { 
+               Application application = new Application();
+               Container container = new Container("top", new Component[] { application }, 
+                               new ProvidedInterface[0], Application.required(true));
+               Environment env = new Environment();
+               container.getRequiredInterfaces()[0].setProvider(
+                               env.getProvidedInterfaces()[0]); 
+               container.getRequiredInterfaces()[1].setProvider(
+                               env.getProvidedInterfaces()[1]);
+           container.start();
+           assertSame(env.getProvidedInterfaces()[0], container.getRequiredInterfaces()[0].getProvider());
+           assertSame(env.getProvidedInterfaces()[1], container.getRequiredInterfaces()[1].getProvider());
+           assertSame(env.getProvidedInterfaces()[0], application.getRequiredInterfaces()[0].getProvider());
+           assertSame(env.getProvidedInterfaces()[1], application.getRequiredInterfaces()[1].getProvider());   
+       }
 }