Author: dkulp
Date: Thu May 15 18:11:52 2014
New Revision: 1594995
URL: http://svn.apache.org/r1594995
Log:
Test: Add tests with multiple services and update the services.
Modified:
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
Modified:
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
URL:
http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java?rev=1594995&r1=1594994&r2=1594995&view=diff
==============================================================================
---
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
(original)
+++
aries/trunk/blueprint/blueprint-cm/src/test/java/org/apache/aries/blueprint/compendium/cm/ManagedServiceFactoryTest.java
Thu May 15 18:11:52 2014
@@ -113,7 +113,7 @@ public class ManagedServiceFactoryTest e
cf.update(props);
BundleContext context = getBundleContext();
- ServiceReference sr = Helper.getOsgiServiceReference(context,
Foo.class, "(key=foo3)", Helper.DEFAULT_TIMEOUT);
+ ServiceReference sr = Helper.getOsgiServiceReference(context,
Foo.class, "(&(key=foo3)(a=5))", Helper.DEFAULT_TIMEOUT);
assertNotNull(sr);
Foo foo = (Foo) context.getService(sr);
@@ -138,4 +138,101 @@ public class ManagedServiceFactoryTest e
assertEquals("foo", sr.getProperty("b"));
}
+ @Test
+ public void testCreateServices() throws Exception {
+ ConfigurationAdmin ca = getOsgiService(ConfigurationAdmin.class);
+ Configuration cf =
ca.createFactoryConfiguration("blueprint-sample-managed-service-factory3",
null);
+ Hashtable<String,String> props = new Hashtable<String,String>();
+ props.put("a", "5");
+ cf.update(props);
+
+ Configuration cf2 =
ca.createFactoryConfiguration("blueprint-sample-managed-service-factory3",
null);
+ Hashtable<String,String> props2 = new Hashtable<String,String>();
+ props2.put("a", "7");
+ cf2.update(props2);
+
+ BundleContext context = getBundleContext();
+ ServiceReference sr = Helper.getOsgiServiceReference(context,
Foo.class, "(&(key=foo3)(a=5))", Helper.DEFAULT_TIMEOUT);
+ assertNotNull(sr);
+
+ ServiceReference sr2 = Helper.getOsgiServiceReference(context,
Foo.class, "(&(key=foo3)(a=7))", Helper.DEFAULT_TIMEOUT);
+ assertNotNull(sr2);
+
+ Foo foo = (Foo) context.getService(sr);
+ assertNotNull(foo);
+ assertEquals(5, foo.getA());
+ assertEquals("default", foo.getB());
+ assertEquals("5", sr.getProperty("a"));
+ assertNull(sr.getProperty("b"));
+
+ Foo foo2 = (Foo) context.getService(sr2);
+ assertNotNull(foo2);
+ assertEquals(7, foo2.getA());
+ assertEquals("default", foo2.getB());
+ assertEquals("7", sr2.getProperty("a"));
+ assertNull(sr2.getProperty("b"));
+ }
+
+ @Test
+ public void testCreateAndUpdate() throws Exception {
+ ConfigurationAdmin ca = getOsgiService(ConfigurationAdmin.class);
+
+ Configuration cf =
ca.createFactoryConfiguration("blueprint-sample-managed-service-factory3",
null);
+ Hashtable<String,String> props = new Hashtable<String,String>();
+ props.put("a", "5");
+ cf.update(props);
+
+ Configuration cf2 =
ca.createFactoryConfiguration("blueprint-sample-managed-service-factory3",
null);
+ Hashtable<String,String> props2 = new Hashtable<String,String>();
+ props2.put("a", "7");
+ cf2.update(props2);
+
+ BundleContext context = getBundleContext();
+ ServiceReference sr = Helper.getOsgiServiceReference(context,
Foo.class, "(&(key=foo3)(a=5))", Helper.DEFAULT_TIMEOUT);
+ assertNotNull(sr);
+
+ ServiceReference sr2 = Helper.getOsgiServiceReference(context,
Foo.class, "(&(key=foo3)(a=7))", Helper.DEFAULT_TIMEOUT);
+ assertNotNull(sr2);
+
+ Foo foo = (Foo) context.getService(sr);
+ assertNotNull(foo);
+ assertEquals(5, foo.getA());
+ assertEquals("default", foo.getB());
+ assertEquals("5", sr.getProperty("a"));
+ assertNull(sr.getProperty("b"));
+
+ Foo foo2 = (Foo) context.getService(sr2);
+ assertNotNull(foo2);
+ assertEquals(7, foo2.getA());
+ assertEquals("default", foo2.getB());
+ assertEquals("7", sr2.getProperty("a"));
+ assertNull(sr2.getProperty("b"));
+
+ props = new Hashtable<String,String>();
+ props.put("a", "5");
+ props.put("b", "foo");
+ cf.update(props);
+
+ props2 = new Hashtable<String,String>();
+ props2.put("a", "7");
+ props2.put("b", "foo2");
+ cf2.update(props2);
+
+ // Update after creation
+ Thread.sleep(500);
+ assertEquals(5, foo.getA());
+ assertEquals("foo", foo.getB());
+
+ // Update of service properties
+ assertEquals("5", sr.getProperty("a"));
+ assertEquals("foo", sr.getProperty("b"));
+
+ // 2a Update after creation
+ assertEquals(7, foo2.getA());
+ assertEquals("foo2", foo2.getB());
+
+ // 2b Update of service properties
+ assertEquals("7", sr2.getProperty("a"));
+ assertEquals("foo2", sr2.getProperty("b"));
+ }
}