You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2007/09/25 17:07:18 UTC
svn commit: r579291 [5/12] - in /felix/sandbox/clement/Tests/Suite: ./ src/
src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/felix/ src/main/java/org/apache/felix/ipojo/
src/main/java/org/apache/felix/ipojo...
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalInstantiation.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalInstantiation.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalInstantiation.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalInstantiation.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,265 @@
+package org.apache.felix.ipojo.test.scenarios.composite.instantiator;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.ServiceContext;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.architecture.InstanceDescription;
+import org.apache.felix.ipojo.test.scenarios.service.BarService;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+public class OptionalInstantiation extends fr.imag.adele.escoffier.utf.framework.TestCase {
+
+ private ComponentFactory bar1Factory;
+ private ComponentInstance empty;
+
+ public OptionalInstantiation(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public void setUp() {
+ bar1Factory = (ComponentFactory) Utils.getFactoryByName(context, "composite.bar.3");
+ Factory fact = Utils.getFactoryByName(context, "composite.empty");
+ Properties props = new Properties();
+ props.put("name", "empty");
+ try {
+ empty = fact.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot create the empty composite : " + e.getMessage());
+ }
+ }
+
+ public void tearDown() {
+ empty.dispose();
+ empty = null;
+ }
+
+ public void testCreation() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ under.dispose();
+ }
+
+ public void testServiceAvailability() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc = Utils.getServiceContext(under);
+ assertNotNull("Check service availability", sc.getServiceReference(BarService.class.getName()));
+
+ under.dispose();
+ }
+
+ public void testCreationLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ under.dispose();
+ }
+
+ public void testServiceAvailabilityLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc2 = Utils.getServiceContext(under);
+ assertNotNull("Check service availability", sc2.getServiceReference(BarService.class.getName()));
+
+ under.dispose();
+ }
+
+ public void testFactoryManagement() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity - 1", under.getState() == ComponentInstance.VALID);
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+
+ fact3.stop();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc = Utils.getServiceContext(under);
+ assertNull("Check that no Bar Service is available", sc.getServiceReference(BarService.class.getName()));
+
+ fact1.start();
+ assertTrue("Check instance validity - 5", under.getState() == ComponentInstance.VALID);
+
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+ public void testFactoryManagementLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity - 1", under.getState() == ComponentInstance.VALID);
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+
+ fact3.stop();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+
+ fact1.start();
+ assertTrue("Check instance validity - 5", under.getState() == ComponentInstance.VALID);
+
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+ public void testArchitecture() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+
+ ServiceReference ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ Architecture arch = (Architecture) context.getService(ref);
+ assertNotNull("Check architecture", arch);
+ InstanceDescription id = arch.getInstanceDescription();
+ assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID);
+ InstanceDescription[] contained = id.getContainedInstances();
+ assertNotNull("Check contained not null", contained);
+ assertEquals("Check contained instances count ("+contained.length+") - 1", contained.length, 1);
+ assertEquals("Check that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.3");
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.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 that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.3");
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.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 that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.3");
+
+ fact3.stop();
+ assertTrue("Check instance invalidity", under.getState() == ComponentInstance.VALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.getService(ref);
+ id = arch.getInstanceDescription();
+ assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID);
+ contained = id.getContainedInstances();
+ assertEquals("Check contained instances count", contained.length, 0);
+ assertEquals("Check that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.3");
+
+ fact1.start();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.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 that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.3");
+
+ context.ungetService(ref);
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalMultipleInstantiation.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalMultipleInstantiation.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalMultipleInstantiation.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/OptionalMultipleInstantiation.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,189 @@
+package org.apache.felix.ipojo.test.scenarios.composite.instantiator;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.ServiceContext;
+import org.apache.felix.ipojo.test.scenarios.service.BarService;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+
+public class OptionalMultipleInstantiation extends fr.imag.adele.escoffier.utf.framework.TestCase {
+
+ private ComponentFactory bar2Factory;
+ private ComponentInstance empty;
+
+ public OptionalMultipleInstantiation(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public void setUp() {
+ bar2Factory = (ComponentFactory) Utils.getFactoryByName(context, "composite.bar.4");
+ assertNotNull("Check bar2factory availability", bar2Factory);
+
+ Factory fact = Utils.getFactoryByName(context, "composite.empty");
+ Properties props = new Properties();
+ props.put("name", "empty");
+ try {
+ empty = fact.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot create the empty composite : " + e.getMessage());
+ }
+ }
+
+ public void tearDown() {
+ empty.dispose();
+ empty = null;
+ }
+
+ public void testCreation() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar2Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ under.dispose();
+ }
+
+ public void testServiceAvailability() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar2Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc = Utils.getServiceContext(under);
+ assertNotNull("Check service availability", sc.getServiceReference(BarService.class.getName()));
+ int count = Utils.getServiceReferences(sc, BarService.class.getName(), null).length;
+ assertEquals("Check service provider number : " + count, count, 3);
+
+ under.dispose();
+ }
+
+ public void testCreationLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar2Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ under.dispose();
+ }
+
+ public void testServiceAvailabilityLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar2Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc2 = Utils.getServiceContext(under);
+ assertNotNull("Check service availability", sc2.getServiceReference(BarService.class.getName()));
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc2, BarService.class.getName(), null).length, 3);
+
+ under.dispose();
+ }
+
+ public void testFactoryManagement() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar2Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ ServiceContext sc = Utils.getServiceContext(under);
+ assertTrue("Check instance validity - 1", under.getState() == ComponentInstance.VALID);
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc, BarService.class.getName(), null).length, 2);
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc, BarService.class.getName(), null).length, 1);
+
+ fact3.stop();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc, BarService.class.getName(), null).length, 0);
+
+ fact1.start();
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc, BarService.class.getName(), null).length, 1);
+ assertTrue("Check instance validity - 5", under.getState() == ComponentInstance.VALID);
+
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+ public void testFactoryManagementLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar2Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity - 1", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc2 = Utils.getServiceContext(under);
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc2, BarService.class.getName(), null).length, 2);
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc2, BarService.class.getName(), null).length, 1);
+
+ fact3.stop();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc2, BarService.class.getName(), null).length, 0);
+
+ fact1.start();
+ assertTrue("Check instance validity - 5", under.getState() == ComponentInstance.VALID);
+ assertEquals("Check service provider number", Utils.getServiceReferences(sc2, BarService.class.getName(), null).length, 1);
+
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/SimpleInstantiation.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/SimpleInstantiation.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/SimpleInstantiation.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/instantiator/SimpleInstantiation.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,260 @@
+package org.apache.felix.ipojo.test.scenarios.composite.instantiator;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.ServiceContext;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.architecture.InstanceDescription;
+import org.apache.felix.ipojo.test.scenarios.service.BarService;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+public class SimpleInstantiation extends fr.imag.adele.escoffier.utf.framework.TestCase {
+
+ private ComponentFactory bar1Factory;
+ private ComponentInstance empty;
+
+ public SimpleInstantiation(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public void setUp() {
+ bar1Factory = (ComponentFactory) Utils.getFactoryByName(context, "composite.bar.1");
+ Factory fact = Utils.getFactoryByName(context, "composite.empty");
+ Properties props = new Properties();
+ props.put("name", "empty-X");
+ try {
+ empty = fact.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot create the empty composite : " + e.getMessage());
+ }
+ }
+
+ public void tearDown() {
+ empty.dispose();
+ empty = null;
+ }
+
+ public void testCreation() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ e.printStackTrace();
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ under.dispose();
+ }
+
+ public void testServiceAvailability() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc = Utils.getServiceContext(under);
+ assertNotNull("Check service availability", sc.getServiceReference(BarService.class.getName()));
+
+ under.dispose();
+ }
+
+ public void testCreationLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ under.dispose();
+ }
+
+ public void testServiceAvailabilityLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under-X");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity", under.getState() == ComponentInstance.VALID);
+ ServiceContext sc2 = Utils.getServiceContext(under);
+ assertNotNull("Check service availability", sc2.getServiceReference(BarService.class.getName()));
+
+ under.dispose();
+ }
+
+ public void testFactoryManagement() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity - 1", under.getState() == ComponentInstance.VALID);
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+
+ fact3.stop();
+ assertTrue("Check instance invalidity", under.getState() == ComponentInstance.INVALID);
+
+ fact1.start();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+ public void testFactoryManagementLevel2() {
+ ServiceContext sc = Utils.getServiceContext(empty);
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props, sc);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ assertTrue("Check instance validity - 1", under.getState() == ComponentInstance.VALID);
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+
+ fact3.stop();
+ assertTrue("Check instance invalidity", under.getState() == ComponentInstance.INVALID);
+
+ fact1.start();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+ public void testArchitecture() {
+ Properties props = new Properties();
+ props.put("name", "under");
+ ComponentInstance under = null;
+ try {
+ under = bar1Factory.createComponentInstance(props);
+ } catch(Exception e) {
+ fail("Cannot instantiate under : " + e.getMessage());
+ }
+ ServiceReference ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ Architecture arch = (Architecture) context.getService(ref);
+ InstanceDescription id = arch.getInstanceDescription();
+
+ assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID);
+ InstanceDescription[] contained = id.getContainedInstances();
+ assertEquals("Check contained instances count", contained.length, 1);
+ assertEquals("Check that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.1");
+
+ ComponentFactory fact1 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-1");
+ ComponentFactory fact2 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-2");
+ ComponentFactory fact3 = (ComponentFactory) Utils.getFactoryByName(context, "FooBarProviderType-3");
+
+ fact1.stop();
+ assertTrue("Check instance validity - 2", under.getState() == ComponentInstance.VALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.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 that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.1");
+
+ fact2.stop();
+ assertTrue("Check instance validity - 3", under.getState() == ComponentInstance.VALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.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 that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.1");
+
+ fact3.stop();
+ assertTrue("Check instance invalidity", under.getState() == ComponentInstance.INVALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.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 that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.1");
+
+ fact1.start();
+ assertTrue("Check instance validity - 4", under.getState() == ComponentInstance.VALID);
+ ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), "under");
+ assertNotNull("Check architecture availability", ref);
+ arch = (Architecture) context.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 that no object are created" , id.getCreatedObjects().length, 0);
+ assertEquals("Check instance name" , id.getName(), "under");
+ assertEquals("Check component type name" , id.getComponentDescription().getName(), "composite.bar.1");
+
+ under.dispose();
+ fact2.start();
+ fact3.start();
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/ProvidesTestSuite.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/ProvidesTestSuite.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/ProvidesTestSuite.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/ProvidesTestSuite.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,30 @@
+package org.apache.felix.ipojo.test.scenarios.composite.provides;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.osgi.framework.BundleContext;
+
+import fr.imag.adele.escoffier.utf.framework.TestSuite;
+
+public class ProvidesTestSuite extends TestSuite {
+
+ public ProvidesTestSuite(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public List suite() {
+ List l = new ArrayList();
+ l.add(new TestComp0(context));
+ l.add(new TestComp1(context));
+ l.add(new TestComp2(context));
+ l.add(new TestComp3(context));
+ l.add(new TestComp4(context));
+ l.add(new TestComp5(context));
+ l.add(new TestComp6(context));
+ l.add(new TestComp7(context));
+ l.add(new TestComp8(context));
+ return l;
+ }
+
+}
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp0.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp0.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp0.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp0.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,326 @@
+package org.apache.felix.ipojo.test.scenarios.composite.provides;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.test.scenarios.component.TotoProvider;
+import org.apache.felix.ipojo.test.scenarios.service.Tota;
+import org.apache.felix.ipojo.test.scenarios.service.Toto;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import fr.imag.adele.escoffier.utf.framework.TestCase;
+
+public class TestComp0 extends TestCase {
+
+ private ComponentFactory tataFactory;
+ private ComponentFactory totoFactory;
+ private ComponentFactory tataFactory2;
+
+ private ComponentInstance totoProv, totoProv2;
+ private ComponentInstance under;
+
+ public TestComp0(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public void setUp() {
+ tataFactory = (ComponentFactory) Utils.getFactoryByName(context, "tata");
+ totoFactory = (ComponentFactory) Utils.getFactoryByName(context, "toto");
+ tataFactory2 = (ComponentFactory) Utils.getFactoryByName(context, "comp-6");
+ tataFactory2.stop();
+ tataFactory.stop();
+
+ Properties props = new Properties();
+ props.put("name", "toto provider");
+ try {
+ totoProv = totoFactory.createComponentInstance(props);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ Properties props3 = new Properties();
+ props3.put("name", "toto provider 2");
+ try {
+ totoProv2 = totoFactory.createComponentInstance(props3);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ totoProv.stop();
+ totoProv2.stop();
+
+ Factory factory = Utils.getFactoryByName(context, "comp-0");
+ Properties props2 = new Properties();
+ props2.put("name", "ff");
+ try {
+ under = factory.createComponentInstance(props2);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void tearDown() {
+ tataFactory.start();
+ totoProv.dispose();
+ totoProv = null;
+ totoProv2.dispose();
+ totoProv2 = null;
+ tataFactory2.start();
+
+ // Reset counters
+ TotoProvider.toto = 0;
+ TotoProvider.toto_2 = 0;
+ TotoProvider.toto_3 = 0;
+ TotoProvider.toto_4 = 0;
+ TotoProvider.toto1 = 0;
+ }
+
+ public void testSimple() {
+ // Neither factory nor instance
+ assertTrue("Assert under state - 1", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 1", context.getServiceReference(Tota.class.getName()));
+
+ // Start the importer
+ totoProv.start();
+ assertNotNull("Assert toto service - 1", context.getServiceReference(Toto.class.getName()));
+ assertTrue("Assert under state - 2", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 2", context.getServiceReference(Tota.class.getName()));
+
+ // Start the factory
+ tataFactory.start();
+ assertTrue("Assert under state - 3", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 3", context.getServiceReference(Tota.class.getName()));
+ ServiceReference ref = context.getServiceReference(Tota.class.getName());
+ Tota tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ Properties props = tota.getProps();
+ Integer toto = (Integer) props.get("toto");
+ Integer toto_2 = (Integer) props.get("toto_2");
+ Integer toto_3 = (Integer) props.get("toto_3");
+ Integer toto_4 = (Integer) props.get("toto_4");
+ assertEquals("Assert toto - 3", toto.intValue(), 1);
+ assertEquals("Assert toto_2 - 3", toto_2.intValue(), 1);
+ assertEquals("Assert toto_3 - 3", toto_3.intValue(), 1);
+ assertEquals("Assert toto_4 - 3", toto_4.intValue(), 0);
+ //Check tata
+ props = tota.getPropsTata();
+ Integer tata = (Integer) props.get("tata");
+ Integer tataStr = (Integer) props.get("tataStr");
+ Integer tataStrs = (Integer) props.get("tataStrs");
+ Integer tata_2 = (Integer) props.get("tata_2");
+ Integer tata_3 = (Integer) props.get("tata_3");
+ Integer tata1 = (Integer) props.get("tata1");
+ Integer tata1_1 = (Integer) props.get("tata1_1");
+ Integer tata5 = (Integer) props.get("tata5");
+ Integer tata5_1 = (Integer) props.get("tata5_1");
+ Integer tata5_2 = (Integer) props.get("tata5_2");
+ assertEquals("Assert tata - 3", tata.intValue(), 1);
+ assertEquals("Assert tataStr - 3", tataStr.intValue(), 1);
+ assertEquals("Assert tataStrs - 3", tataStrs.intValue(), 0);
+ assertEquals("Assert tata_2 - 3", tata_2.intValue(), 1);
+ assertEquals("Assert tata_3 - 3", tata_3.intValue(), 1);
+ assertEquals("Assert tata1 - 3", tata1.intValue(), 1);
+ assertEquals("Assert tata1_1 - 3", tata1_1.intValue(), 1);
+ assertEquals("Assert tata5 - 3", tata5.intValue(), 1);
+ assertEquals("Assert tata5_1 - 3", tata5_1.intValue(), 1);
+ assertEquals("Assert tata5_2 - 3", tata5_2.intValue(), 1);
+
+ context.ungetService(ref);
+ tota = null;
+
+ // Start a second import
+ totoProv2.start();
+ assertTrue("Assert under state - 4", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 4", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ props = tota.getProps();
+ toto = (Integer) props.get("toto");
+ toto_2 = (Integer) props.get("toto_2");
+ toto_3 = (Integer) props.get("toto_3");
+ toto_4 = (Integer) props.get("toto_4");
+ assertEquals("Assert toto - 4", toto.intValue(), 2);
+ assertEquals("Assert toto_2 - 4", toto_2.intValue(), 2);
+ assertEquals("Assert toto_3 - 4", toto_3.intValue(), 2);
+ assertEquals("Assert toto_4 - 4", toto_4.intValue(), 0);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ tataStr = (Integer) props.get("tataStr");
+ tataStrs = (Integer) props.get("tataStrs");
+ tata_2 = (Integer) props.get("tata_2");
+ tata_3 = (Integer) props.get("tata_3");
+ tata1 = (Integer) props.get("tata1");
+ tata1_1 = (Integer) props.get("tata1_1");
+ tata5 = (Integer) props.get("tata5");
+ tata5_1 = (Integer) props.get("tata5_1");
+ tata5_2 = (Integer) props.get("tata5_2");
+ assertEquals("Assert tata - 4", tata.intValue(), 2);
+ assertEquals("Assert tataStr - 4", tataStr.intValue(), 2);
+ assertEquals("Assert tataStrs - 4", tataStrs.intValue(), 0);
+ assertEquals("Assert tata_2 - 4", tata_2.intValue(), 2);
+ assertEquals("Assert tata_3 - 4", tata_3.intValue(), 2);
+ assertEquals("Assert tata1 - 4", tata1.intValue(), 2);
+ assertEquals("Assert tata1_1 - 4", tata1_1.intValue(), 2);
+ assertEquals("Assert tata5 - 4", tata5.intValue(), 2);
+ assertEquals("Assert tata5_1 - 4", tata5_1.intValue(), 2);
+ assertEquals("Assert tata5_2 - 4", tata5_2.intValue(), 2);
+
+ context.ungetService(ref);
+ tota = null;
+
+ tataFactory.stop();
+ assertTrue("Assert under state - 5", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 5", context.getServiceReference(Tota.class.getName()));
+
+ totoProv2.stop();
+ tataFactory.start();
+ assertTrue("Assert under state - 6", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 6", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ props = tota.getProps();
+ toto = (Integer) props.get("toto");
+ toto_2 = (Integer) props.get("toto_2");
+ toto_3 = (Integer) props.get("toto_3");
+ toto_4 = (Integer) props.get("toto_4");
+ assertEquals("Assert toto - 6", toto.intValue(), 3);
+ assertEquals("Assert toto_2 - 6", toto_2.intValue(), 3);
+ assertEquals("Assert toto_3 - 6", toto_3.intValue(), 3);
+ assertEquals("Assert toto_4 - 6", toto_4.intValue(), 0);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ tataStr = (Integer) props.get("tataStr");
+ tataStrs = (Integer) props.get("tataStrs");
+ tata_2 = (Integer) props.get("tata_2");
+ tata_3 = (Integer) props.get("tata_3");
+ tata1 = (Integer) props.get("tata1");
+ tata1_1 = (Integer) props.get("tata1_1");
+ tata5 = (Integer) props.get("tata5");
+ tata5_1 = (Integer) props.get("tata5_1");
+ tata5_2 = (Integer) props.get("tata5_2");
+ assertEquals("Assert tata - 6", tata.intValue(), 1);
+ assertEquals("Assert tataStr - 6", tataStr.intValue(), 1);
+ assertEquals("Assert tataStrs - 6", tataStrs.intValue(), 0);
+ assertEquals("Assert tata_2 - 6", tata_2.intValue(), 1);
+ assertEquals("Assert tata_3 - 6", tata_3.intValue(), 1);
+ assertEquals("Assert tata1 - 6", tata1.intValue(), 1);
+ assertEquals("Assert tata1_1 - 6", tata1_1.intValue(), 1);
+ assertEquals("Assert tata5 - 6", tata5.intValue(), 1);
+ assertEquals("Assert tata5_1 - 6", tata5_1.intValue(), 1);
+ assertEquals("Assert tata5_2 - 6", tata5_2.intValue(), 1);
+
+ context.ungetService(ref);
+ tota = null;
+
+ // Is arch exposed
+ assertNotNull("Test arch", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+
+ totoProv.stop();
+
+ assertTrue("Assert under state - 7", under.getState() == ComponentInstance.INVALID);
+ assertNotNull("Test arch-2", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+ assertNull("Assert no tota service - 7", context.getServiceReference(Tota.class.getName()));
+
+ under.dispose();
+ under = null;
+ }
+
+
+
+ private void invoke(Tota tota) {
+ tota.tata();
+
+ assertEquals("Assert invoke tataint", tota.tataInt(2), 2);
+ assertEquals("Assert invoke tataLong", tota.tataLong(2), 2);
+ assertEquals("Assert invoke tataDouble", tota.tataDouble(2), 2);
+ assertEquals("Assert invoke tataChar", tota.tataChar('a'), 'a');
+ assertTrue("Assert invoke tataBoolean", tota.tataBoolean(true));
+ assertEquals("Assert invoke tataByte", tota.tataByte((byte)2), 2);
+ assertEquals("Assert invoke tataShort", tota.tataShort((short)5), 5);
+ assertEquals("Assert invoke tataFloat", tota.tataFloat(5), 5);
+
+ }
+
+ private void invokeArrays(Tota tota) {
+
+ int[] a = new int[] {1,2,3};
+ assertEquals("Assert invoke tataint[]", tota.tataInts(a), a);
+
+ long[] b = new long[] {1,2,3};
+ assertEquals("Assert invoke tataLong[]", tota.tataLongs(b), b);
+
+ double[] c = new double[] {1,2,3};
+ assertEquals("Assert invoke tataDouble[]", tota.tataDoubles(c), c);
+
+ char[] d = new char[] {'a','b', 'c'};
+ assertEquals("Assert invoke tataChar[]", tota.tataChars(d), d);
+
+ boolean[] e = new boolean[] {true, false};
+ assertEquals("Assert invoke tataBoolean[]", tota.tataBooleans(e), e);
+
+ byte[] f = new byte[] {(byte) 1};
+ assertEquals("Assert invoke tataByte[]", tota.tataBytes(f), f);
+
+ short[] g = new short[] {(short) 1};
+ assertEquals("Assert invoke tataShort[]", tota.tataShorts(g), g);
+
+ float[] h = new float[] {5,6,7};
+ assertEquals("Assert invoke tataFloat[]", tota.tataFloats(h), h);
+
+ }
+
+ private void invokeStr(Tota tota) {
+ tota.tataStr();
+ }
+
+ private void invokeTata(Tota tota) {
+ tota.tata(1,2);
+ tota.tata("tototototo");
+ }
+
+ private void invokeTata1(Tota tota) {
+ assertEquals("Assert tata1", tota.tata1("foo"), "foo");
+ assertEquals("Assert tata1 - 2", tota.tata1(new char[] {'a','b','c'}), "abc");
+ }
+
+ private void invokeTata5(Tota tota) {
+ assertEquals("Assert tata5 -1", tota.tata5("foo",1), "foo"+1);
+ assertEquals("Assert tata5 - 2", tota.tata5(new String[] {"a","b","c"}, 1), "31");
+ assertEquals("Assert tata5 - 3", tota.tata5("foo", new int[] {1,2,3}), "foo3");
+ }
+
+ private void invokeAdd(Tota tota) {
+ assertEquals("Assert add", tota.add(1,1,1), 3);
+ }
+
+ private void invokeToto(Tota tota) {
+ tota.toto();
+ assertEquals("Assert toto", tota.toto("foo"), "foo");
+ tota.toto(1,2);
+ }
+
+ private void invokeAll(Tota tota) {
+ invoke(tota);
+ invokeArrays(tota);
+ invokeStr(tota);
+ invokeTata(tota);
+ invokeTata1(tota);
+ invokeTata5(tota);
+ invokeAdd(tota);
+ invokeToto(tota);
+ }
+
+
+}
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp1.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp1.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp1.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp1.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,326 @@
+package org.apache.felix.ipojo.test.scenarios.composite.provides;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.test.scenarios.component.TotoProvider;
+import org.apache.felix.ipojo.test.scenarios.service.Tota;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import fr.imag.adele.escoffier.utf.framework.TestCase;
+
+public class TestComp1 extends TestCase {
+
+ private ComponentFactory tataFactory;
+ private ComponentFactory totoFactory;
+
+ private ComponentInstance totoProv, totoProv2;
+ private ComponentInstance under;
+ private ComponentFactory tataFactory2;
+
+ public TestComp1(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public void setUp() {
+ tataFactory = (ComponentFactory) Utils.getFactoryByName(context, "tata");
+ totoFactory = (ComponentFactory) Utils.getFactoryByName(context, "toto");
+ tataFactory2 = (ComponentFactory) Utils.getFactoryByName(context, "comp-6");
+ tataFactory2.stop();
+
+ tataFactory.stop();
+
+ Properties props = new Properties();
+ props.put("name", "toto provider");
+ try {
+ totoProv = totoFactory.createComponentInstance(props);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ Properties props3 = new Properties();
+ props3.put("name", "toto provider 2");
+ try {
+ totoProv2 = totoFactory.createComponentInstance(props3);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ totoProv.stop();
+ totoProv2.stop();
+
+ Factory factory = Utils.getFactoryByName(context, "comp-1");
+ Properties props2 = new Properties();
+ props2.put("name", "ff");
+ try {
+ under = factory.createComponentInstance(props2);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public void tearDown() {
+ tataFactory.start();
+ totoProv.dispose();
+ totoProv = null;
+ totoProv2.dispose();
+ totoProv2 = null;
+ tataFactory2.start();
+
+ // Reset counters
+ TotoProvider.toto = 0;
+ TotoProvider.toto_2 = 0;
+ TotoProvider.toto_3 = 0;
+ TotoProvider.toto_4 = 0;
+ TotoProvider.toto1 = 0;
+ }
+
+ public void testSimple() {
+ // Neither factory nor instance
+ assertTrue("Assert under state - 1", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 1", context.getServiceReference(Tota.class.getName()));
+
+ // Start the importer
+ totoProv.start();
+ assertTrue("Assert under state - 2 ("+under.getState()+")", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 2", context.getServiceReference(Tota.class.getName()));
+
+ // Start the factory
+ tataFactory.start();
+ assertTrue("Assert under state - 3", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 3", context.getServiceReference(Tota.class.getName()));
+ ServiceReference ref = context.getServiceReference(Tota.class.getName());
+ Tota tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ Properties props = tota.getProps();
+ Integer toto = (Integer) props.get("toto");
+ Integer toto_2 = (Integer) props.get("toto_2");
+ Integer toto_3 = (Integer) props.get("toto_3");
+ Integer toto_4 = (Integer) props.get("toto_4");
+ assertEquals("Assert toto - 3 ("+toto.intValue()+")", toto.intValue(), 1);
+ assertEquals("Assert toto_2 - 3", toto_2.intValue(), 1);
+ assertEquals("Assert toto_3 - 3", toto_3.intValue(), 1);
+ assertEquals("Assert toto_4 - 3", toto_4.intValue(), 0);
+ //Check tata
+ props = tota.getPropsTata();
+ Integer tata = (Integer) props.get("tata");
+ Integer tataStr = (Integer) props.get("tataStr");
+ Integer tataStrs = (Integer) props.get("tataStrs");
+ Integer tata_2 = (Integer) props.get("tata_2");
+ Integer tata_3 = (Integer) props.get("tata_3");
+ Integer tata1 = (Integer) props.get("tata1");
+ Integer tata1_1 = (Integer) props.get("tata1_1");
+ Integer tata5 = (Integer) props.get("tata5");
+ Integer tata5_1 = (Integer) props.get("tata5_1");
+ Integer tata5_2 = (Integer) props.get("tata5_2");
+ assertEquals("Assert tata - 3", tata.intValue(), 1);
+ assertEquals("Assert tataStr - 3", tataStr.intValue(), 1);
+ assertEquals("Assert tataStrs - 3", tataStrs.intValue(), 0);
+ assertEquals("Assert tata_2 - 3", tata_2.intValue(), 1);
+ assertEquals("Assert tata_3 - 3", tata_3.intValue(), 1);
+ assertEquals("Assert tata1 - 3", tata1.intValue(), 1);
+ assertEquals("Assert tata1_1 - 3", tata1_1.intValue(), 1);
+ assertEquals("Assert tata5 - 3", tata5.intValue(), 1);
+ assertEquals("Assert tata5_1 - 3", tata5_1.intValue(), 1);
+ assertEquals("Assert tata5_2 - 3", tata5_2.intValue(), 1);
+
+ context.ungetService(ref);
+ tota = null;
+
+ // Start a second import
+ totoProv2.start();
+ assertTrue("Assert under state - 4", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 4", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ props = tota.getProps();
+ toto = (Integer) props.get("toto");
+ toto_2 = (Integer) props.get("toto_2");
+ toto_3 = (Integer) props.get("toto_3");
+ toto_4 = (Integer) props.get("toto_4");
+ assertEquals("Assert toto - 4", toto.intValue(), 2);
+ assertEquals("Assert toto_2 - 4", toto_2.intValue(), 2);
+ assertEquals("Assert toto_3 - 4", toto_3.intValue(), 2);
+ assertEquals("Assert toto_4 - 4", toto_4.intValue(), 0);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ tataStr = (Integer) props.get("tataStr");
+ tataStrs = (Integer) props.get("tataStrs");
+ tata_2 = (Integer) props.get("tata_2");
+ tata_3 = (Integer) props.get("tata_3");
+ tata1 = (Integer) props.get("tata1");
+ tata1_1 = (Integer) props.get("tata1_1");
+ tata5 = (Integer) props.get("tata5");
+ tata5_1 = (Integer) props.get("tata5_1");
+ tata5_2 = (Integer) props.get("tata5_2");
+ assertEquals("Assert tata - 4", tata.intValue(), 2);
+ assertEquals("Assert tataStr - 4", tataStr.intValue(), 2);
+ assertEquals("Assert tataStrs - 4", tataStrs.intValue(), 0);
+ assertEquals("Assert tata_2 - 4", tata_2.intValue(), 2);
+ assertEquals("Assert tata_3 - 4", tata_3.intValue(), 2);
+ assertEquals("Assert tata1 - 4", tata1.intValue(), 2);
+ assertEquals("Assert tata1_1 - 4", tata1_1.intValue(), 2);
+ assertEquals("Assert tata5 - 4", tata5.intValue(), 2);
+ assertEquals("Assert tata5_1 - 4", tata5_1.intValue(), 2);
+ assertEquals("Assert tata5_2 - 4", tata5_2.intValue(), 2);
+
+ context.ungetService(ref);
+ tota = null;
+
+ tataFactory.stop();
+ assertTrue("Assert under state - 5", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 5", context.getServiceReference(Tota.class.getName()));
+
+ totoProv2.stop();
+ tataFactory.start();
+ assertTrue("Assert under state - 6", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 6", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ props = tota.getProps();
+ toto = (Integer) props.get("toto");
+ toto_2 = (Integer) props.get("toto_2");
+ toto_3 = (Integer) props.get("toto_3");
+ toto_4 = (Integer) props.get("toto_4");
+ assertEquals("Assert toto - 6", toto.intValue(), 3);
+ assertEquals("Assert toto_2 - 6", toto_2.intValue(), 3);
+ assertEquals("Assert toto_3 - 6", toto_3.intValue(), 3);
+ assertEquals("Assert toto_4 - 6", toto_4.intValue(), 0);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ tataStr = (Integer) props.get("tataStr");
+ tataStrs = (Integer) props.get("tataStrs");
+ tata_2 = (Integer) props.get("tata_2");
+ tata_3 = (Integer) props.get("tata_3");
+ tata1 = (Integer) props.get("tata1");
+ tata1_1 = (Integer) props.get("tata1_1");
+ tata5 = (Integer) props.get("tata5");
+ tata5_1 = (Integer) props.get("tata5_1");
+ tata5_2 = (Integer) props.get("tata5_2");
+ assertEquals("Assert tata - 6", tata.intValue(), 1);
+ assertEquals("Assert tataStr - 6", tataStr.intValue(), 1);
+ assertEquals("Assert tataStrs - 6", tataStrs.intValue(), 0);
+ assertEquals("Assert tata_2 - 6", tata_2.intValue(), 1);
+ assertEquals("Assert tata_3 - 6", tata_3.intValue(), 1);
+ assertEquals("Assert tata1 - 6", tata1.intValue(), 1);
+ assertEquals("Assert tata1_1 - 6", tata1_1.intValue(), 1);
+ assertEquals("Assert tata5 - 6", tata5.intValue(), 1);
+ assertEquals("Assert tata5_1 - 6", tata5_1.intValue(), 1);
+ assertEquals("Assert tata5_2 - 6", tata5_2.intValue(), 1);
+
+ context.ungetService(ref);
+ tota = null;
+
+ // Is arch exposed
+ assertNotNull("Test arch", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+
+ totoProv.stop();
+
+ assertTrue("Assert under state - 7", under.getState() == ComponentInstance.INVALID);
+ assertNotNull("Test arch-2", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+ assertNull("Assert no tota service - 7", context.getServiceReference(Tota.class.getName()));
+
+ under.dispose();
+ under = null;
+ }
+
+
+
+ private void invoke(Tota tota) {
+ tota.tata();
+
+ assertEquals("Assert invoke tataint", tota.tataInt(2), 2);
+ assertEquals("Assert invoke tataLong", tota.tataLong(2), 2);
+ assertEquals("Assert invoke tataDouble", tota.tataDouble(2), 2);
+ assertEquals("Assert invoke tataChar", tota.tataChar('a'), 'a');
+ assertTrue("Assert invoke tataBoolean", tota.tataBoolean(true));
+ assertEquals("Assert invoke tataByte", tota.tataByte((byte)2), 2);
+ assertEquals("Assert invoke tataShort", tota.tataShort((short)5), 5);
+ assertEquals("Assert invoke tataFloat", tota.tataFloat(5), 5);
+
+ }
+
+ private void invokeArrays(Tota tota) {
+
+ int[] a = new int[] {1,2,3};
+ assertEquals("Assert invoke tataint[]", tota.tataInts(a), a);
+
+ long[] b = new long[] {1,2,3};
+ assertEquals("Assert invoke tataLong[]", tota.tataLongs(b), b);
+
+ double[] c = new double[] {1,2,3};
+ assertEquals("Assert invoke tataDouble[]", tota.tataDoubles(c), c);
+
+ char[] d = new char[] {'a','b', 'c'};
+ assertEquals("Assert invoke tataChar[]", tota.tataChars(d), d);
+
+ boolean[] e = new boolean[] {true, false};
+ assertEquals("Assert invoke tataBoolean[]", tota.tataBooleans(e), e);
+
+ byte[] f = new byte[] {(byte) 1};
+ assertEquals("Assert invoke tataByte[]", tota.tataBytes(f), f);
+
+ short[] g = new short[] {(short) 1};
+ assertEquals("Assert invoke tataShort[]", tota.tataShorts(g), g);
+
+ float[] h = new float[] {5,6,7};
+ assertEquals("Assert invoke tataFloat[]", tota.tataFloats(h), h);
+
+ }
+
+ private void invokeStr(Tota tota) {
+ tota.tataStr();
+ }
+
+ private void invokeTata(Tota tota) {
+ tota.tata(1,2);
+ tota.tata("tototototo");
+ }
+
+ private void invokeTata1(Tota tota) {
+ assertEquals("Assert tata1", tota.tata1("foo"), "foo");
+ assertEquals("Assert tata1 - 2", tota.tata1(new char[] {'a','b','c'}), "abc");
+ }
+
+ private void invokeTata5(Tota tota) {
+ assertEquals("Assert tata5 -1", tota.tata5("foo",1), "foo"+1);
+ assertEquals("Assert tata5 - 2", tota.tata5(new String[] {"a","b","c"}, 1), "31");
+ assertEquals("Assert tata5 - 3", tota.tata5("foo", new int[] {1,2,3}), "foo3");
+ }
+
+ private void invokeAdd(Tota tota) {
+ assertEquals("Assert add", tota.add(1,1,1), 3);
+ }
+
+ private void invokeToto(Tota tota) {
+ tota.toto();
+ assertEquals("Assert toto", tota.toto("foo"), "foo");
+ tota.toto(1,2);
+ }
+
+ private void invokeAll(Tota tota) {
+ invoke(tota);
+ invokeArrays(tota);
+ invokeStr(tota);
+ invokeTata(tota);
+ invokeTata1(tota);
+ invokeTata5(tota);
+ invokeAdd(tota);
+ invokeToto(tota);
+ }
+
+
+}
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp2.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp2.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp2.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp2.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,220 @@
+package org.apache.felix.ipojo.test.scenarios.composite.provides;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.test.scenarios.component.TotoProvider;
+import org.apache.felix.ipojo.test.scenarios.service.Tota;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import fr.imag.adele.escoffier.utf.framework.TestCase;
+
+public class TestComp2 extends TestCase {
+
+ private ComponentFactory tataFactory;
+ private ComponentFactory totoFactory;
+
+ private ComponentInstance totoProv, totoProv2;
+ private ComponentInstance under;
+ private ComponentFactory tataFactory2;
+
+ public TestComp2(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public void setUp() {
+ tataFactory = (ComponentFactory) Utils.getFactoryByName(context, "tata");
+ totoFactory = (ComponentFactory) Utils.getFactoryByName(context, "toto");
+ tataFactory2 = (ComponentFactory) Utils.getFactoryByName(context, "comp-6");
+ tataFactory2.stop();
+ tataFactory.stop();
+
+ Properties props = new Properties();
+ props.put("name", "toto provider");
+ try {
+ totoProv = totoFactory.createComponentInstance(props);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ Properties props3 = new Properties();
+ props3.put("name", "toto provider 2");
+ try {
+ totoProv2 = totoFactory.createComponentInstance(props3);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ totoProv.stop();
+ totoProv2.stop();
+
+ Factory factory = Utils.getFactoryByName(context, "comp-2");
+ Properties props2 = new Properties();
+ props2.put("name", "ff");
+ try {
+ under = factory.createComponentInstance(props2);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public void tearDown() {
+ tataFactory.start();
+ totoProv.dispose();
+ totoProv = null;
+ totoProv2.dispose();
+ totoProv2 = null;
+ tataFactory2.start();
+
+ // Reset counters
+ TotoProvider.toto = 0;
+ TotoProvider.toto_2 = 0;
+ TotoProvider.toto_3 = 0;
+ TotoProvider.toto_4 = 0;
+ TotoProvider.toto1 = 0;
+ }
+
+ public void testSimple() {
+ // Neither factory nor instance
+ assertTrue("Assert under state - 1", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 1", context.getServiceReference(Tota.class.getName()));
+
+ // Start the importer
+ totoProv.start();
+ assertTrue("Assert under state - 2 ("+under.getState()+")", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 2", context.getServiceReference(Tota.class.getName()));
+
+ // Start the factory
+ tataFactory.start();
+ assertTrue("Assert under state - 3", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 3", context.getServiceReference(Tota.class.getName()));
+ ServiceReference ref = context.getServiceReference(Tota.class.getName());
+ Tota tota = (Tota) context.getService(ref);
+
+ invokeAll(tota);
+
+ // Check toto
+ Properties props = tota.getProps();
+ Integer toto = (Integer) props.get("toto");
+ Integer toto_2 = (Integer) props.get("toto_2");
+ Integer toto_3 = (Integer) props.get("toto_3");
+ Integer toto_4 = (Integer) props.get("toto_4");
+ Integer toto_1 = (Integer) props.get("toto1");
+ assertEquals("Assert toto - 3 ("+toto.intValue()+")", toto.intValue(), 1);
+ assertEquals("Assert toto_2 - 3", toto_2.intValue(), 1);
+ assertEquals("Assert toto_3 - 3", toto_3.intValue(), 1);
+ assertEquals("Assert toto_4 - 3", toto_4.intValue(), 0);
+ assertEquals("Assert toto1 - 3 (" + toto_1.intValue() + ")", toto_1.intValue(), 1);
+ //Check tata
+ props = tota.getPropsTata();
+ Integer tata = (Integer) props.get("tata");
+ assertEquals("Assert tata - 3", tata.intValue(), 1);
+
+ context.ungetService(ref);
+ tota = null;
+
+ // Start a second import
+ totoProv2.start();
+ assertTrue("Assert under state - 4", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 4", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ props = tota.getProps();
+ toto = (Integer) props.get("toto");
+ toto_2 = (Integer) props.get("toto_2");
+ toto_3 = (Integer) props.get("toto_3");
+ toto_4 = (Integer) props.get("toto_4");
+ toto_1 = (Integer) props.get("toto1");
+ assertEquals("Assert toto - 4 ("+toto.intValue()+")", toto.intValue(), 2);
+ assertEquals("Assert toto_2 - 4 ("+toto_2.intValue()+")", toto_2.intValue(), 2);
+ assertEquals("Assert toto_3 - 4", toto_3.intValue(), 2);
+ assertEquals("Assert toto_4 - 4", toto_4.intValue(), 0);
+ assertEquals("Assert toto1 - 4", toto_1.intValue(), 3);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ assertEquals("Assert tata - 4", tata.intValue(), 2);
+
+ context.ungetService(ref);
+ tota = null;
+
+ tataFactory.stop();
+ assertTrue("Assert under state - 5", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 5", context.getServiceReference(Tota.class.getName()));
+
+ totoProv2.stop();
+ tataFactory.start();
+ assertTrue("Assert under state - 6", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 6", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ props = tota.getProps();
+ toto = (Integer) props.get("toto");
+ toto_2 = (Integer) props.get("toto_2");
+ toto_3 = (Integer) props.get("toto_3");
+ toto_4 = (Integer) props.get("toto_4");
+ toto_1 = (Integer) props.get("toto1");
+ assertEquals("Assert toto - 6 ("+toto.intValue()+")", toto.intValue(), 3);
+ assertEquals("Assert toto_2 - 6 ("+toto_2.intValue()+")", toto_2.intValue(), 3);
+ assertEquals("Assert toto_3 - 6", toto_3.intValue(), 3);
+ assertEquals("Assert toto_4 - 6", toto_4.intValue(), 0);
+ assertEquals("Assert toto1 - 6", toto_1.intValue(), 4);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ assertEquals("Assert tata - 6", tata.intValue(), 1);
+
+ context.ungetService(ref);
+ tota = null;
+
+ // Is arch exposed
+ assertNotNull("Test arch", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+
+ totoProv.stop();
+
+ assertTrue("Assert under state - 7", under.getState() == ComponentInstance.INVALID);
+ assertNotNull("Test arch-2", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+ assertNull("Assert no tota service - 7", context.getServiceReference(Tota.class.getName()));
+
+ under.dispose();
+ under = null;
+ }
+
+ private void invoke(Tota tota) {
+ tota.tata();
+
+ assertEquals("Assert invoke tataint", tota.tataInt(2), 2);
+ assertEquals("Assert invoke tataLong", tota.tataLong(2), 2);
+ assertEquals("Assert invoke tataDouble", tota.tataDouble(2), 2);
+ assertEquals("Assert invoke tataChar", tota.tataChar('a'), 'a');
+ assertTrue("Assert invoke tataBoolean", tota.tataBoolean(true));
+ assertEquals("Assert invoke tataByte", tota.tataByte((byte)2), 2);
+ assertEquals("Assert invoke tataShort", tota.tataShort((short)5), 5);
+ assertEquals("Assert invoke tataFloat", tota.tataFloat(5), 5);
+
+ }
+
+ private void invokeToto(Tota tota) {
+ tota.toto();
+ assertEquals("Assert toto", tota.toto("foo"), "foo");
+ tota.toto(1,2);
+ tota.toto1("foo2");
+ }
+
+ private void invokeAll(Tota tota) {
+ invoke(tota);
+ invokeToto(tota);
+ }
+
+
+}
Added: felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp3.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp3.java?rev=579291&view=auto
==============================================================================
--- felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp3.java (added)
+++ felix/sandbox/clement/Tests/Suite/src/main/java/org/apache/felix/ipojo/test/scenarios/composite/provides/TestComp3.java Tue Sep 25 08:06:53 2007
@@ -0,0 +1,250 @@
+package org.apache.felix.ipojo.test.scenarios.composite.provides;
+
+import java.util.Properties;
+
+import org.apache.felix.ipojo.ComponentFactory;
+import org.apache.felix.ipojo.ComponentInstance;
+import org.apache.felix.ipojo.Factory;
+import org.apache.felix.ipojo.architecture.Architecture;
+import org.apache.felix.ipojo.test.scenarios.component.TotoProvider;
+import org.apache.felix.ipojo.test.scenarios.service.Tota;
+import org.apache.felix.ipojo.test.scenarios.util.Utils;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import fr.imag.adele.escoffier.utf.framework.TestCase;
+
+public class TestComp3 extends TestCase {
+
+ private ComponentFactory tataFactory;
+ private ComponentFactory totoFactory;
+
+ private ComponentInstance totoProv, totoProv2;
+ private ComponentInstance under;
+ private ComponentFactory tataFactory2;
+
+ public TestComp3(BundleContext arg0) {
+ super(arg0);
+ }
+
+ public void setUp() {
+ tataFactory = (ComponentFactory) Utils.getFactoryByName(context, "tata");
+ totoFactory = (ComponentFactory) Utils.getFactoryByName(context, "toto");
+ tataFactory2 = (ComponentFactory) Utils.getFactoryByName(context, "comp-6");
+ tataFactory2.stop();
+ tataFactory.stop();
+
+ Properties props = new Properties();
+ props.put("name", "toto provider");
+ try {
+ totoProv = totoFactory.createComponentInstance(props);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ Properties props3 = new Properties();
+ props3.put("name", "toto provider 2");
+ try {
+ totoProv2 = totoFactory.createComponentInstance(props3);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ totoProv.stop();
+ totoProv2.stop();
+
+ Factory factory = Utils.getFactoryByName(context, "comp-3");
+ Properties props2 = new Properties();
+ props2.put("name", "ff");
+ try {
+ under = factory.createComponentInstance(props2);
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public void tearDown() {
+ tataFactory.start();
+ totoProv.dispose();
+ totoProv = null;
+ totoProv2.dispose();
+ totoProv2 = null;
+ tataFactory2.start();
+
+ // Reset counters
+ TotoProvider.toto = 0;
+ TotoProvider.toto_2 = 0;
+ TotoProvider.toto_3 = 0;
+ TotoProvider.toto_4 = 0;
+ TotoProvider.toto1 = 0;
+ }
+
+ public void testSimple() {
+ // Neither factory nor instance
+ assertTrue("Assert under state - 1", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 1", context.getServiceReference(Tota.class.getName()));
+
+ // Start the importer
+ totoProv.start();
+ assertTrue("Assert under state - 2 ("+under.getState()+")", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 2", context.getServiceReference(Tota.class.getName()));
+
+ // Start the factory
+ tataFactory.start();
+ assertTrue("Assert under state - 3", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 3", context.getServiceReference(Tota.class.getName()));
+ ServiceReference ref = context.getServiceReference(Tota.class.getName());
+ Tota tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ // Check toto
+ Properties props = tota.getProps();
+ Integer toto = (Integer) props.get("toto");
+ Integer toto_2 = (Integer) props.get("toto_2");
+ Integer toto_3 = (Integer) props.get("toto_3");
+ Integer toto_4 = (Integer) props.get("toto_4");
+ Integer toto_1 = (Integer) props.get("toto1");
+ assertEquals("Assert toto - 3 ("+toto.intValue()+")", toto.intValue(), 1);
+ assertEquals("Assert toto_2 - 3", toto_2.intValue(), 1);
+ assertEquals("Assert toto_3 - 3", toto_3.intValue(), 1);
+ assertEquals("Assert toto_4 - 3", toto_4.intValue(), 0);
+ assertEquals("Assert toto1 - 3 (" + toto_1.intValue() + ")", toto_1.intValue(), 1);
+ //Check tata
+ props = tota.getPropsTata();
+ Integer tata = (Integer) props.get("tata");
+ assertEquals("Assert tata - 3", tata.intValue(), 1);
+
+ context.ungetService(ref);
+ tota = null;
+
+ // Start a second import
+ totoProv2.start();
+ assertTrue("Assert under state - 4", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 4", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAll(tota);
+ props = tota.getProps();
+ toto = (Integer) props.get("toto");
+ toto_2 = (Integer) props.get("toto_2");
+ toto_3 = (Integer) props.get("toto_3");
+ toto_4 = (Integer) props.get("toto_4");
+ toto_1 = (Integer) props.get("toto1");
+ assertEquals("Assert toto - 4 ("+toto.intValue()+")", toto.intValue(), 2);
+ assertEquals("Assert toto_2 - 4 ("+toto_2.intValue()+")", toto_2.intValue(), 2);
+ assertEquals("Assert toto_3 - 4", toto_3.intValue(), 2);
+ assertEquals("Assert toto_4 - 4", toto_4.intValue(), 0);
+ assertEquals("Assert toto1 - 4", toto_1.intValue(), 2);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ assertEquals("Assert tata - 4", tata.intValue(), 2);
+ context.ungetService(ref);
+ tota = null;
+
+ // Stop the factory
+ tataFactory.stop();
+ assertTrue("Assert under state - 5", under.getState() == ComponentInstance.INVALID);
+ assertNull("Assert no tota service - 5", context.getServiceReference(Tota.class.getName()));
+
+ totoProv2.stop();
+ totoProv.stop();
+ tataFactory.start();
+ assertTrue("Assert under state - 6", under.getState() == ComponentInstance.VALID);
+ assertNotNull("Assert tota service - 6", context.getServiceReference(Tota.class.getName()));
+ ref = context.getServiceReference(Tota.class.getName());
+ tota = (Tota) context.getService(ref);
+ invokeAllOpt(tota);
+ //Check tata
+ props = tota.getPropsTata();
+ tata = (Integer) props.get("tata");
+ assertEquals("Assert tata - 4", tata.intValue(), 1);
+ context.ungetService(ref);
+ tota = null;
+
+ // Is arch exposed
+ assertNotNull("Test arch", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+
+ tataFactory.stop();
+
+ assertTrue("Assert under state - 7", under.getState() == ComponentInstance.INVALID);
+ assertNotNull("Test arch-2", Utils.getServiceReferenceByName(context, Architecture.class.getName(), "ff"));
+ assertNull("Assert no tota service - 7", context.getServiceReference(Tota.class.getName()));
+
+ under.dispose();
+ under = null;
+ }
+
+ private void invoke(Tota tota) {
+ tota.tata();
+
+ assertEquals("Assert invoke tataint", tota.tataInt(2), 2);
+ assertEquals("Assert invoke tataLong", tota.tataLong(2), 2);
+ assertEquals("Assert invoke tataDouble", tota.tataDouble(2), 2);
+ assertEquals("Assert invoke tataChar", tota.tataChar('a'), 'a');
+ assertTrue("Assert invoke tataBoolean", tota.tataBoolean(true));
+ assertEquals("Assert invoke tataByte", tota.tataByte((byte)2), 2);
+ assertEquals("Assert invoke tataShort", tota.tataShort((short)5), 5);
+ assertEquals("Assert invoke tataFloat", tota.tataFloat(5), 5);
+
+ }
+
+
+ private void invokeStr(Tota tota) {
+ tota.tataStr();
+ }
+
+ private void invokeToto(Tota tota) {
+ tota.toto();
+ assertEquals("Assert toto", tota.toto("foo"), "foo");
+ tota.toto(1,2);
+ tota.toto1("foo");
+ }
+
+ private void invokeAll(Tota tota) {
+ invoke(tota);
+ //invokeArrays(tota);
+ invokeStr(tota);
+ //invokeTata(tota);
+ //invokeTata1(tota);
+ //invokeTata5(tota);
+ //invokeAdd(tota);
+ invokeToto(tota);
+ }
+
+ private void invokeAllOpt(Tota tota) {
+ invoke(tota);
+ //invokeArrays(tota);
+ invokeStr(tota);
+ //invokeTata(tota);
+ //invokeTata1(tota);
+ //invokeTata5(tota);
+ //invokeAdd(tota);
+ invokeTotoOpt(tota);
+ }
+
+ private void invokeTotoOpt(Tota tota) {
+ try {
+ tota.toto();
+ fail("UnsupportedOperationException expected");
+ } catch(UnsupportedOperationException e) { }
+
+ try {
+ assertEquals("Assert toto", tota.toto("foo"), "foo");
+ fail("UnsupportedOperationException expected");
+ } catch(UnsupportedOperationException e) { }
+
+
+ try {
+ tota.toto(1,2);
+ fail("UnsupportedOperationException expected");
+ } catch(UnsupportedOperationException e) { }
+
+ try {
+ tota.toto1("foo");
+ fail("UnsupportedOperationException expected");
+ } catch(UnsupportedOperationException e) { }
+ }
+
+
+}