diff options
Diffstat (limited to 'bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java')
-rw-r--r-- | bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java index 470c80f28..a93f31758 100644 --- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java +++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/serviceregistry/ServiceRegistryTests.java @@ -455,6 +455,32 @@ public class ServiceRegistryTests extends AbstractBundleTests { } } + public void testModifiedRanking() { + Runnable runIt = new Runnable() { + public void run() { + // nothing + } + }; + Hashtable props = new Hashtable(); + props.put(getName(), Boolean.TRUE); + props.put(Constants.SERVICE_RANKING, new Integer(15)); + ServiceRegistration reg1 = getContext().registerService(Runnable.class.getName(), runIt, props); + props.put(Constants.SERVICE_RANKING, new Integer(10)); + ServiceRegistration reg2 = getContext().registerService(Runnable.class.getName(), runIt, props); + try { + assertEquals("wrong service reference", reg1.getReference(), getContext().getServiceReference("java.lang.Runnable")); //$NON-NLS-1$//$NON-NLS-2$ + + props.put(Constants.SERVICE_RANKING, new Integer(20)); + reg2.setProperties(props); + assertEquals("wrong service reference", reg2.getReference(), getContext().getServiceReference("java.lang.Runnable")); //$NON-NLS-1$//$NON-NLS-2$ + } finally { + if (reg1 != null) + reg1.unregister(); + if (reg2 != null) + reg2.unregister(); + } + } + private void clearResults(boolean[] results) { for (int i = 0; i < results.length; i++) results[i] = false; |