+
+ 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());
+ }