Return-Path: Delivered-To: apmail-felix-commits-archive@www.apache.org Received: (qmail 14400 invoked from network); 29 Apr 2008 22:26:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 29 Apr 2008 22:26:48 -0000 Received: (qmail 1327 invoked by uid 500); 29 Apr 2008 22:26:50 -0000 Delivered-To: apmail-felix-commits-archive@felix.apache.org Received: (qmail 1294 invoked by uid 500); 29 Apr 2008 22:26:50 -0000 Mailing-List: contact commits-help@felix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@felix.apache.org Delivered-To: mailing list commits@felix.apache.org Received: (qmail 1283 invoked by uid 99); 29 Apr 2008 22:26:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Apr 2008 15:26:50 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Apr 2008 22:25:59 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A82E32388A01; Tue, 29 Apr 2008 15:25:55 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r652169 [7/10] - in /felix/trunk/ipojo/tests: ./ tests.composite.service.import-export/ tests.composite.service.import-export/src/ tests.composite.service.import-export/src/main/ tests.composite.service.import-export/src/main/java/ tests.co... Date: Tue, 29 Apr 2008 22:25:45 -0000 To: commits@felix.apache.org From: clement@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080429222555.A82E32388A01@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Added: felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/MultipleDependencies.java URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/MultipleDependencies.java?rev=652169&view=auto ============================================================================== --- felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/MultipleDependencies.java (added) +++ felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/MultipleDependencies.java Tue Apr 29 15:25:39 2008 @@ -0,0 +1,308 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.felix.ipojo.test.scenarios.service.dependency.statics; + +import java.util.Properties; + +import org.apache.felix.ipojo.ComponentInstance; +import org.apache.felix.ipojo.architecture.Architecture; +import org.apache.felix.ipojo.architecture.InstanceDescription; +import org.apache.felix.ipojo.junit4osgi.OSGiTestCase; +import org.apache.felix.ipojo.test.scenarios.util.Utils; +import org.osgi.framework.ServiceReference; + +import org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService; + +public class MultipleDependencies extends OSGiTestCase { + + ComponentInstance instance1, instance2, instance3, instance4; + ComponentInstance fooProvider1, fooProvider2; + + public void setUp() { + try { + Properties prov = new Properties(); + prov.put("name", "FooProvider1"); + fooProvider1 = Utils.getFactoryByName(context, "FooProviderType-1").createComponentInstance(prov); + fooProvider1.stop(); + + Properties prov2 = new Properties(); + prov2.put("name", "FooProvider2"); + fooProvider2 = Utils.getFactoryByName(context, "FooProviderType-1").createComponentInstance(prov2); + fooProvider2.stop(); + + Properties i1 = new Properties(); + i1.put("name", "Simple"); + instance1 = Utils.getFactoryByName(context, "StaticSimpleMultipleCheckServiceProvider").createComponentInstance(i1); + + Properties i2 = new Properties(); + i2.put("name", "Void"); + instance2 = Utils.getFactoryByName(context, "StaticVoidMultipleCheckServiceProvider").createComponentInstance(i2); + + Properties i3 = new Properties(); + i3.put("name", "Object"); + instance3 = Utils.getFactoryByName(context, "StaticObjectMultipleCheckServiceProvider").createComponentInstance(i3); + + Properties i4 = new Properties(); + i4.put("name", "Ref"); + instance4 = Utils.getFactoryByName(context, "StaticRefMultipleCheckServiceProvider").createComponentInstance(i4); + } catch(Exception e) { fail(e.getMessage()); } + + } + + public void tearDown() { + instance1.dispose(); + instance2.dispose(); + instance3.dispose(); + instance4.dispose(); + fooProvider1.dispose(); + fooProvider2.dispose(); + instance1 = null; + instance2 = null; + instance3 = null; + instance4 = null; + fooProvider1 = null; + fooProvider2 = null; + } + + public void testSimple() { + instance1.stop(); + fooProvider1.start(); + instance1.start(); + + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance1.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance1.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + //Check properties + assertTrue("check CheckService invocation - 1", ((Boolean)props.get("result")).booleanValue()); // True, a provider is here + assertEquals("check void bind invocation - 1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 1", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 1", ((Integer)props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 1", ((Long)props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 1", ((Double)props.get("double")).doubleValue(), 1.0); + + fooProvider2.start(); + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertTrue("check CheckService invocation - 2", ((Boolean)props.get("result")).booleanValue()); // True, two providers are here + assertEquals("check void bind invocation - 2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 2", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 2", ((Integer)props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 2", ((Long)props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 2", ((Double)props.get("double")).doubleValue(), 1.0); + + fooProvider1.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 5", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void testVoid() { + instance2.stop(); + fooProvider1.start(); + instance2.start(); + + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance2.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance2.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + // Check properties + assertTrue("check CheckService invocation - 1", ((Boolean) props.get("result")).booleanValue()); // True, a provider is here + assertEquals("check void bind invocation - 1", ((Integer) props.get("voidB")).intValue(), 1); + assertEquals("check void unbind callback invocation - 1", ((Integer) props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 1", ((Integer) props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 1", ((Integer) props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 1", ((Integer) props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 1", ((Integer) props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 1", ((Integer) props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 1", ((Long) props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 1", ((Double) props.get("double")).doubleValue(), 1.0); + + fooProvider2.start(); + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + // Check properties + assertTrue("check CheckService invocation - 2", ((Boolean) props.get("result")).booleanValue()); // True, two providers are here + assertEquals("check void bind invocation - 2", ((Integer) props.get("voidB")).intValue(), 1); + assertEquals("check void unbind callback invocation - 2", ((Integer) props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer) props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 2", ((Integer) props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer) props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 2", ((Integer) props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 2", ((Integer) props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 2", ((Long) props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 2", ((Double) props.get("double")).doubleValue(), 1.0); + + fooProvider1.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 5", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void testObject() { + instance3.stop(); + fooProvider1.start(); + instance3.start(); + + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance3.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + // Check properties + assertTrue("check CheckService invocation - 1", ((Boolean) props.get("result")).booleanValue()); // True, a provider is here + assertEquals("check void bind invocation - 1", ((Integer) props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 1", ((Integer) props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 1", ((Integer) props.get("objectB")).intValue(), 1); + assertEquals("check object unbind callback invocation - 1", ((Integer) props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 1", ((Integer) props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 1", ((Integer) props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 1", ((Integer) props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 1", ((Long) props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 1", ((Double) props.get("double")).doubleValue(), 1.0); + + fooProvider2.start(); + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + // Check properties + assertTrue("check CheckService invocation - 2", ((Boolean) props.get("result")).booleanValue()); // True, two providers are here + assertEquals("check void bind invocation - 2", ((Integer) props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 2", ((Integer) props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer) props.get("objectB")).intValue(), 1); + assertEquals("check object unbind callback invocation - 2", ((Integer) props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer) props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 2", ((Integer) props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 2", ((Integer) props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 2", ((Long) props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 2", ((Double) props.get("double")).doubleValue(), 1.0); + + fooProvider1.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 5", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void testRef() { + instance4.stop(); + fooProvider1.start(); + instance4.start(); + + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance4.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + //Check properties + assertTrue("check CheckService invocation - 1", ((Boolean) props.get("result")).booleanValue()); // True, a provider is here + assertEquals("check void bind invocation - 1", ((Integer) props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 1", ((Integer) props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 1", ((Integer) props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 1", ((Integer) props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 1", ((Integer) props.get("refB")).intValue(), 1); + assertEquals("check ref unbind callback invocation - 1", ((Integer) props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 1", ((Integer) props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 1", ((Long) props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 1", ((Double) props.get("double")).doubleValue(), 1.0); + + fooProvider2.start(); + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertTrue("check CheckService invocation - 2", ((Boolean) props.get("result")).booleanValue()); // True, two providers are here + assertEquals("check void bind invocation - 2", ((Integer) props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 2", ((Integer) props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer) props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 2", ((Integer) props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer) props.get("refB")).intValue(), 1); + assertEquals("check ref unbind callback invocation - 2", ((Integer) props.get("refU")).intValue(), 0); + assertEquals("Check FS invocation (int) - 2", ((Integer) props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 2", ((Long) props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 2", ((Double) props.get("double")).doubleValue(), 1.0); + + fooProvider1.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 5", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + +} Added: felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/OptionalDependencies.java URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/OptionalDependencies.java?rev=652169&view=auto ============================================================================== --- felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/OptionalDependencies.java (added) +++ felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/OptionalDependencies.java Tue Apr 29 15:25:39 2008 @@ -0,0 +1,507 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.felix.ipojo.test.scenarios.service.dependency.statics; + +import java.util.Properties; + +import org.apache.felix.ipojo.ComponentInstance; +import org.apache.felix.ipojo.ConfigurationException; +import org.apache.felix.ipojo.MissingHandlerException; +import org.apache.felix.ipojo.UnacceptableConfiguration; +import org.apache.felix.ipojo.architecture.Architecture; +import org.apache.felix.ipojo.architecture.InstanceDescription; +import org.apache.felix.ipojo.junit4osgi.OSGiTestCase; +import org.apache.felix.ipojo.test.scenarios.util.Utils; +import org.osgi.framework.ServiceReference; + +import org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService; + +public class OptionalDependencies extends OSGiTestCase { + + ComponentInstance instance1, instance2, instance3, instance4, instance5; + ComponentInstance fooProvider; + + public void setUp() { + try { + Properties prov = new Properties(); + prov.put("name", "FooProvider"); + fooProvider = Utils.getFactoryByName(context, "FooProviderType-1").createComponentInstance(prov); + fooProvider.stop(); + + Properties i1 = new Properties(); + i1.put("name", "Simple"); + instance1 = Utils.getFactoryByName(context, "StaticSimpleOptionalCheckServiceProvider").createComponentInstance(i1); + + Properties i2 = new Properties(); + i2.put("name", "Void"); + instance2 = Utils.getFactoryByName(context, "StaticVoidOptionalCheckServiceProvider").createComponentInstance(i2); + + Properties i3 = new Properties(); + i3.put("name", "Object"); + instance3 = Utils.getFactoryByName(context, "StaticObjectOptionalCheckServiceProvider").createComponentInstance(i3); + + Properties i4 = new Properties(); + i4.put("name", "Ref"); + instance4 = Utils.getFactoryByName(context, "StaticRefOptionalCheckServiceProvider").createComponentInstance(i4); + + Properties i5 = new Properties(); + i5.put("name", "Both"); + instance5 = Utils.getFactoryByName(context, "StaticBothOptionalCheckServiceProvider").createComponentInstance(i5); + } catch(Exception e) { fail(e.getMessage()); } + } + + public void tearDown() { + instance1.dispose(); + instance2.dispose(); + instance3.dispose(); + instance4.dispose(); + instance5.dispose(); + fooProvider.dispose(); + instance1 = null; + instance2 = null; + instance3 = null; + instance4 = null; + instance5 = null; + fooProvider = null; + } + + public void atestSimple() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance1.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance1.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + //Check properties + assertFalse("check CheckService invocation - 1", ((Boolean)props.get("result")).booleanValue()); // False is returned (nullable) + assertEquals("check void bind invocation - 1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 1", ((Integer)props.get("refU")).intValue(), 0); + assertNull("Check FS invocation (object) - 1", props.get("object")); + assertEquals("Check FS invocation (int) - 1", ((Integer)props.get("int")).intValue(), 0); + assertEquals("Check FS invocation (long) - 1", ((Long)props.get("long")).longValue(), 0); + assertEquals("Check FS invocation (double) - 1", ((Double)props.get("double")).doubleValue(), 0.0); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + assertNotNull("Check CheckService availability", cs_ref); + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + + //Check properties + assertFalse("check CheckService invocation - 2", ((Boolean)props.get("result")).booleanValue()); // False, the provider was not bound + assertEquals("check void bind invocation - 2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 2", ((Integer)props.get("refU")).intValue(), 0); + assertNull("Check FS invocation (object) - 2", props.get("object")); + assertEquals("Check FS invocation (int) - 2", ((Integer)props.get("int")).intValue(), 0); + assertEquals("Check FS invocation (long) - 2", ((Long)props.get("long")).longValue(), 0); + assertEquals("Check FS invocation (double) - 2", ((Double)props.get("double")).doubleValue(), 0.0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void atestDelayedSimple() throws UnacceptableConfiguration, MissingHandlerException, ConfigurationException { + instance1.stop(); + fooProvider.start(); + instance1.start(); + + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance1.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance1.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + //Check properties + assertTrue("check CheckService invocation - 2", ((Boolean)props.get("result")).booleanValue()); // True, the provider was bound + assertEquals("check void bind invocation - 2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 2", ((Integer)props.get("refU")).intValue(), 0); + assertNotNull("Check FS invocation (object) - 2", props.get("object")); + assertEquals("Check FS invocation (int) - 2", ((Integer)props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 2", ((Long)props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 2", ((Double)props.get("double")).doubleValue(), 1.0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.INVALID); // Dependency broken + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void atestVoid() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance2.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance2.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation - 1", ((Boolean)props.get("result")).booleanValue()); // False is returned (nullable) + assertEquals("check void bind invocation - 1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 1", ((Integer)props.get("refU")).intValue(), 0); + assertNull("Check FS invocation (object) - 1", props.get("object")); + assertEquals("Check FS invocation (int) - 1", ((Integer)props.get("int")).intValue(), 0); + assertEquals("Check FS invocation (long) - 1", ((Long)props.get("long")).longValue(), 0); + assertEquals("Check FS invocation (double) - 1", ((Double)props.get("double")).doubleValue(), 0.0); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + assertNotNull("Check CheckService availability", cs_ref); + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -2", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -2", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -2", ((Integer)props.get("refU")).intValue(), 0); + assertNull("Check FS invocation (object) - 2", props.get("object")); + assertEquals("Check FS invocation (int) - 2", ((Integer)props.get("int")).intValue(), 0); + assertEquals("Check FS invocation (long) - 2", ((Long)props.get("long")).longValue(), 0); + assertEquals("Check FS invocation (double) - 2", ((Double)props.get("double")).doubleValue(), 0.0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -3", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -3", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -3 ("+((Integer)props.get("voidU")) + ")", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -3", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -3", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -3", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -3", ((Integer)props.get("refU")).intValue(), 0); + assertNull("Check FS invocation (object) - 3", props.get("object")); + assertEquals("Check FS invocation (int) - 3", ((Integer)props.get("int")).intValue(), 0); + assertEquals("Check FS invocation (long) - 3", ((Long)props.get("long")).longValue(), 0); + assertEquals("Check FS invocation (double) - 3", ((Double)props.get("double")).doubleValue(), 0.0); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void testDelayedVoid() throws UnacceptableConfiguration, MissingHandlerException, ConfigurationException { + instance2.stop(); + fooProvider.start(); + instance2.start(); + + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance2.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance2.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + //Check properties + assertTrue("check CheckService invocation - 2", ((Boolean)props.get("result")).booleanValue()); // True, the provider was bound + assertEquals("check void bind invocation - 2", ((Integer)props.get("voidB")).intValue(), 1); + assertEquals("check void unbind callback invocation - 2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation - 2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 2", ((Integer)props.get("refU")).intValue(), 0); + assertNotNull("Check FS invocation (object) - 2", props.get("object")); + assertEquals("Check FS invocation (int) - 2", ((Integer)props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 2", ((Long)props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 2", ((Double)props.get("double")).doubleValue(), 1.0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3 (" + id.getState() + ")", id.getState() == ComponentInstance.INVALID); // Dependency broken + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void atestObject() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance3.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -1", ((Boolean)props.get("result")).booleanValue()); // False is returned (nullable) + assertEquals("check void bind invocation -1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -1", ((Integer)props.get("refU")).intValue(), 0); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + assertNotNull("Check CheckService availability", cs_ref); + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -2", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -2 (" + ((Integer)props.get("objectB")).intValue() + ")", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -2", ((Integer)props.get("refU")).intValue(), 0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -3", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -3", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -3", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -3", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -3", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -3", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -3", ((Integer)props.get("refU")).intValue(), 0); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void atestDelayedObject() throws UnacceptableConfiguration, MissingHandlerException, ConfigurationException { + instance3.stop(); + fooProvider.start(); + instance3.start(); + + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance3.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + + //Check properties + assertTrue("check CheckService invocation - 2", ((Boolean)props.get("result")).booleanValue()); // True, the provider was bound + assertEquals("check void bind invocation - 2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation - 2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation - 2", ((Integer)props.get("objectB")).intValue(), 1); + assertEquals("check object unbind callback invocation - 2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation - 2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation - 2", ((Integer)props.get("refU")).intValue(), 0); + assertNotNull("Check FS invocation (object) - 2", props.get("object")); + assertEquals("Check FS invocation (int) - 2", ((Integer)props.get("int")).intValue(), 1); + assertEquals("Check FS invocation (long) - 2", ((Long)props.get("long")).longValue(), 1); + assertEquals("Check FS invocation (double) - 2", ((Double)props.get("double")).doubleValue(), 1.0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.INVALID); // Dependency broken + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void atestRef() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance4.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -1", ((Boolean)props.get("result")).booleanValue()); // False is returned (nullable) + assertEquals("check void bind invocation -1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -1", ((Integer)props.get("refU")).intValue(), 0); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + assertNotNull("Check CheckService availability", cs_ref); + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -2", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -2", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -2", ((Integer)props.get("refU")).intValue(), 0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -3", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -3", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -3", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -3", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -3", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -3", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -3", ((Integer)props.get("refU")).intValue(), 0); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + public void atestBoth() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance5.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance5.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -1", ((Boolean)props.get("result")).booleanValue()); // False is returned (nullable) + assertEquals("check void bind invocation -1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check both bind callback invocation -1", ((Integer)props.get("bothB")).intValue(), 0); + assertEquals("check both unbind callback invocation -1", ((Integer)props.get("bothU")).intValue(), 0); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.VALID); + + assertNotNull("Check CheckService availability", cs_ref); + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -2", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -2", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -2", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -2", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -2", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -2", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -2", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("check both bind callback invocation -2", ((Integer)props.get("bothB")).intValue(), 0); + assertEquals("check both unbind callback invocation -2", ((Integer)props.get("bothU")).intValue(), 0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 3 (" + id.getState() + ")", id.getState() == ComponentInstance.VALID); + + cs = (CheckService) context.getService(cs_ref); + props = cs.getProps(); + //Check properties + assertFalse("check CheckService invocation -3", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -3", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -3", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -3", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -3", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -3", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -3", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("check both bind callback invocation -3", ((Integer)props.get("bothB")).intValue(), 0); + assertEquals("check both unbind callback invocation -3", ((Integer)props.get("bothU")).intValue(), 0); + + id = null; + cs = null; + context.ungetService(arch_ref); + context.ungetService(cs_ref); + } + + +} Added: felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/SimpleDependencies.java URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/SimpleDependencies.java?rev=652169&view=auto ============================================================================== --- felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/SimpleDependencies.java (added) +++ felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/SimpleDependencies.java Tue Apr 29 15:25:39 2008 @@ -0,0 +1,320 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.felix.ipojo.test.scenarios.service.dependency.statics; + +import java.util.Properties; + +import org.apache.felix.ipojo.ComponentInstance; +import org.apache.felix.ipojo.architecture.Architecture; +import org.apache.felix.ipojo.architecture.InstanceDescription; +import org.apache.felix.ipojo.junit4osgi.OSGiTestCase; +import org.apache.felix.ipojo.test.scenarios.util.Utils; +import org.osgi.framework.ServiceReference; + +import org.apache.felix.ipojo.test.scenarios.service.dependency.service.CheckService; + +public class SimpleDependencies extends OSGiTestCase { + + ComponentInstance instance1, instance2, instance3, instance4, instance5; + ComponentInstance fooProvider; + + public void setUp() { + try { + Properties prov = new Properties(); + prov.put("name", "FooProvider"); + fooProvider = Utils.getFactoryByName(context, "FooProviderType-1").createComponentInstance(prov); + fooProvider.stop(); + + Properties i1 = new Properties(); + i1.put("name", "Simple"); + instance1 = Utils.getFactoryByName(context, "StaticSimpleCheckServiceProvider").createComponentInstance(i1); + + Properties i2 = new Properties(); + i2.put("name", "Void"); + instance2 = Utils.getFactoryByName(context, "StaticVoidCheckServiceProvider").createComponentInstance(i2); + + Properties i3 = new Properties(); + i3.put("name", "Object"); + instance3 = Utils.getFactoryByName(context, "StaticObjectCheckServiceProvider").createComponentInstance(i3); + + Properties i4 = new Properties(); + i4.put("name", "Ref"); + instance4 = Utils.getFactoryByName(context, "StaticRefCheckServiceProvider").createComponentInstance(i4); + + Properties i5 = new Properties(); + i5.put("name", "Both"); + instance5 = Utils.getFactoryByName(context, "StaticBothCheckServiceProvider").createComponentInstance(i5); + } catch(Exception e) { + e.printStackTrace(); + fail(e.getMessage()); } + + } + + public void tearDown() { + instance1.dispose(); + instance2.dispose(); + instance3.dispose(); + instance4.dispose(); + instance5.dispose(); + fooProvider.dispose(); + instance1 = null; + instance2 = null; + instance3 = null; + instance4 = null; + instance5 = null; + fooProvider = null; + } + + public void testSimple() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance1.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 1", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 1", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance1.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + assertTrue("check CheckService invocation", cs.check()); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.INVALID); + + cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance1.getInstanceName()); + assertNull("Check CheckService availability", cs_ref); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + } + + public void testVoid() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance2.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 1", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance2.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + Object o = context.getService(cs_ref); + CheckService cs = (CheckService) o; + Properties props = cs.getProps(); + //Check properties + assertTrue("check CheckService invocation -1", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -1 ("+((Integer)props.get("voidB")).intValue()+")", ((Integer)props.get("voidB")).intValue(), 1); + assertEquals("check void unbind callback invocation -1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -1", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("check both bind callback invocation -1", ((Integer)props.get("bothB")).intValue(), 0); + assertEquals("check both unbind callback invocation -1", ((Integer)props.get("bothU")).intValue(), 0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.INVALID); + + cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance2.getInstanceName()); + assertNull("Check CheckService availability - 2", cs_ref); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + } + + public void testObject() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance3.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 1", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + //Check properties + assertTrue("check CheckService invocation -1", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -1", ((Integer)props.get("objectB")).intValue(), 1); + assertEquals("check object unbind callback invocation -1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -1", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("check both bind callback invocation -1", ((Integer)props.get("bothB")).intValue(), 0); + assertEquals("check both unbind callback invocation -1", ((Integer)props.get("bothU")).intValue(), 0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.INVALID); + + cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance3.getInstanceName()); + assertNull("Check CheckService availability - 2", cs_ref); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + } + + public void testRef() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance4.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 1", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + //Check properties + assertTrue("check CheckService invocation -1", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -1", ((Integer)props.get("refB")).intValue(), 1); + assertEquals("check ref unbind callback invocation -1", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("check both bind callback invocation -1", ((Integer)props.get("bothB")).intValue(), 0); + assertEquals("check both unbind callback invocation -1", ((Integer)props.get("bothU")).intValue(), 0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.INVALID); + + cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance4.getInstanceName()); + assertNull("Check CheckService availability - 2", cs_ref); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + } + + public void testBoth() { + ServiceReference arch_ref = Utils.getServiceReferenceByName(context, Architecture.class.getName(), instance5.getInstanceName()); + assertNotNull("Check architecture availability", arch_ref); + InstanceDescription id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 1", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity", id.getState() == ComponentInstance.VALID); + + ServiceReference cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance5.getInstanceName()); + assertNotNull("Check CheckService availability", cs_ref); + CheckService cs = (CheckService) context.getService(cs_ref); + Properties props = cs.getProps(); + //Check properties + assertTrue("check CheckService invocation -1", ((Boolean)props.get("result")).booleanValue()); + assertEquals("check void bind invocation -1", ((Integer)props.get("voidB")).intValue(), 0); + assertEquals("check void unbind callback invocation -1", ((Integer)props.get("voidU")).intValue(), 0); + assertEquals("check object bind callback invocation -1", ((Integer)props.get("objectB")).intValue(), 0); + assertEquals("check object unbind callback invocation -1", ((Integer)props.get("objectU")).intValue(), 0); + assertEquals("check ref bind callback invocation -1", ((Integer)props.get("refB")).intValue(), 0); + assertEquals("check ref unbind callback invocation -1", ((Integer)props.get("refU")).intValue(), 0); + assertEquals("check both bind callback invocation -1", ((Integer)props.get("bothB")).intValue(), 1); + assertEquals("check both unbind callback invocation -1", ((Integer)props.get("bothU")).intValue(), 0); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + fooProvider.start(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance validity - 2", id.getState() == ComponentInstance.INVALID); + + cs_ref = Utils.getServiceReferenceByName(context, CheckService.class.getName(), instance5.getInstanceName()); + assertNull("Check CheckService availability - 2", cs_ref); + + fooProvider.stop(); + + id = ((Architecture) context.getService(arch_ref)).getInstanceDescription(); + assertTrue("Check instance invalidity - 2", id.getState() == ComponentInstance.INVALID); + + id = null; + cs = null; + context.ungetService(arch_ref); + } + +} Added: felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/StaticDependencyTestSuite.java URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/StaticDependencyTestSuite.java?rev=652169&view=auto ============================================================================== --- felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/StaticDependencyTestSuite.java (added) +++ felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/java/org/apache/felix/ipojo/test/scenarios/service/dependency/statics/StaticDependencyTestSuite.java Tue Apr 29 15:25:39 2008 @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.felix.ipojo.test.scenarios.service.dependency.statics; + +import junit.framework.Test; + +import org.apache.felix.ipojo.junit4osgi.OSGiTestSuite; +import org.apache.felix.ipojo.test.scenarios.service.dependency.statics.MethodOptionalDependencies; +import org.apache.felix.ipojo.test.scenarios.service.dependency.statics.MethodSimpleDependencies; +import org.apache.felix.ipojo.test.scenarios.service.dependency.statics.MultipleDependencies; +import org.apache.felix.ipojo.test.scenarios.service.dependency.statics.OptionalDependencies; +import org.apache.felix.ipojo.test.scenarios.service.dependency.statics.SimpleDependencies; +import org.osgi.framework.BundleContext; + +public class StaticDependencyTestSuite { + + public static Test suite(BundleContext bc) { + OSGiTestSuite ots = new OSGiTestSuite("Static Dependency Test Suite", bc); + ots.addTestSuite( SimpleDependencies.class); + ots.addTestSuite( OptionalDependencies.class); + ots.addTestSuite( MultipleDependencies.class); + ots.addTestSuite( MethodSimpleDependencies.class); + ots.addTestSuite( MethodOptionalDependencies.class); + return ots; + } + +} Added: felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/resources/metadata.xml URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/resources/metadata.xml?rev=652169&view=auto ============================================================================== --- felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/resources/metadata.xml (added) +++ felix/trunk/ipojo/tests/tests.core.service.dependency.bindingpolicy/src/main/resources/metadata.xml Tue Apr 29 15:25:39 2008 @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Propchange: felix/trunk/ipojo/tests/tests.core.service.dependency.filter/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Tue Apr 29 15:25:39 2008 @@ -0,0 +1,9 @@ +target* +bin* +.settings* +.classpath +.project +.checkstyle +maven-eclipse.xml +.externalToolBuilders + Added: felix/trunk/ipojo/tests/tests.core.service.dependency.filter/pom.xml URL: http://svn.apache.org/viewvc/felix/trunk/ipojo/tests/tests.core.service.dependency.filter/pom.xml?rev=652169&view=auto ============================================================================== --- felix/trunk/ipojo/tests/tests.core.service.dependency.filter/pom.xml (added) +++ felix/trunk/ipojo/tests/tests.core.service.dependency.filter/pom.xml Tue Apr 29 15:25:39 2008 @@ -0,0 +1,104 @@ + + + 4.0.0 + bundle + iPOJO Service Dependency (Filter) Test Suite + tests.core.service.dependency.filter + ipojo.tests + 0.7.6-SNAPSHOT + + + org.apache.felix + org.apache.felix.ipojo + 0.7.6-SNAPSHOT + + + org.apache.felix + org.apache.felix.ipojo.metadata + 0.7.6-SNAPSHOT + + + org.apache.felix + org.osgi.core + 1.0.0 + + + junit + junit + 3.8.1 + + + ipojo.examples + org.apache.felix.ipojo.junit4osgi + 0.7.6-SNAPSHOT + + + ipojo.tests + tests.core.service.dependency + 0.7.6-SNAPSHOT + + + + + + org.apache.felix + maven-bundle-plugin + 1.4.0 + true + + + + ${pom.artifactId} + + + org.apache.felix.ipojo.test.scenarios.service.dependency.filter, org.apache.felix.ipojo.test.scenarios.service.dependency.filter.component, org.apache.felix.ipojo.test.scenarios.util + + + org.apache.felix.ipojo.test.scenarios.service.dependency.filter.FilteredDependencyTestSuite + + + + + + org.apache.felix + maven-ipojo-plugin + 0.7.6-SNAPSHOT + + + + ipojo-bundle + + + true + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.4 + 1.4 + + + + +