InstanceDescription[] contained = id.getContainedInstances();
assertEquals("Check contained instances count", contained.length, 3);
assertEquals("Check instance name" , id.getName(), "under");
assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.2");
ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(getContext(), "COMPO-FooBarProviderType-1");
ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(getContext(), "COMPO-FooBarProviderType-2");
ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(getContext(), "COMPO-FooBarProviderType-3");
fact1.stop();
assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
ref = Utils.getServiceReferenceByName(getContext(), Architecture.class.getName(), "under");
assertNotNull("Check architecture availability", ref);
arch = (Architecture) getContext().getService(ref);
//id = arch.getInstanceDescription();
assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID);
contained = id.getContainedInstances();
assertEquals("Check contained instances count", contained.length, 2);
assertEquals("Check instance name" , id.getName(), "under");
assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.2");
fact2.stop();
assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
ref = Utils.getServiceReferenceByName(getContext(), Architecture.class.getName(), "under");
assertNotNull("Check architecture availability", ref);
arch = (Architecture) getContext().getService(ref);
//id = arch.getInstanceDescription();
assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID);
contained = id.getContainedInstances();
assertEquals("Check contained instances count", contained.length, 1);
assertEquals("Check instance name" , id.getName(), "under");
assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.2");
fact3.stop();
assertTrue("Check instance invalidity", under.getState() == ComponentInstance.INVALID);
ref = Utils.getServiceReferenceByName(getContext(), Architecture.class.getName(), "under");
assertNotNull("Check architecture availability", ref);
arch = (Architecture) getContext().getService(ref);
//id = arch.getInstanceDescription();
assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.INVALID);
contained = id.getContainedInstances();
assertEquals("Check contained instances count", contained.length, 0);
assertEquals("Check instance name" , id.getName(), "under");
assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.2");
fact1.start();
assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
ref = Utils.getServiceReferenceByName(getContext(), Architecture.class.getName(), "under");
assertNotNull("Check architecture availability", ref);
arch = (Architecture) getContext().getService(ref);
//id = arch.getInstanceDescription();
assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID);
contained = id.getContainedInstances();
assertEquals("Check contained instances count", contained.length, 1);
assertEquals("Check instance name" , id.getName(), "under");
assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.2");
getContext().ungetService(ref);
under.dispose();
fact2.start();
fact3.start();
}