Implemented optinality of interfaces.
[utils] / system / general / src / test / java / org / wamblee / system / core / ContainerTest.java
index 5a7fa90bf1c4137af659cae507d726b70e6eb858..27a1937ff59f4f7e845022f1bb056397d3c3aa20 100644 (file)
@@ -338,4 +338,50 @@ public class ContainerTest extends TestCase {
                }
                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());   
+       }
 }