diff options
author | slewis | 2016-01-12 06:18:16 +0000 |
---|---|---|
committer | slewis | 2016-01-12 06:18:16 +0000 |
commit | eb6a0e835f7d2be728be6de7674e0cc483a78e2e (patch) | |
tree | bb7842c92b14b8df161fe8009edba5a6ba73ef51 /tests/bundles/org.eclipse.ecf.tests.provider.discovery | |
parent | 09083a599c071c9429924619fa9745b205900f1d (diff) | |
download | org.eclipse.ecf-eb6a0e835f7d2be728be6de7674e0cc483a78e2e.tar.gz org.eclipse.ecf-eb6a0e835f7d2be728be6de7674e0cc483a78e2e.tar.xz org.eclipse.ecf-eb6a0e835f7d2be728be6de7674e0cc483a78e2e.zip |
Removed CompositeDiscoveryContainer tests from AllTests suite in
org.eclipse.ecf.tests.provider.discovery
Change-Id: I0000000000000000000000000000000000000000
Diffstat (limited to 'tests/bundles/org.eclipse.ecf.tests.provider.discovery')
13 files changed, 449 insertions, 449 deletions
diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF index 62b210376..48a0ae60c 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/META-INF/MANIFEST.MF @@ -18,4 +18,3 @@ Require-Bundle: org.junit, Bundle-Vendor: %plugin.provider Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1, J2SE-1.4 -Export-Package: org.eclipse.ecf.tests.provider.discovery;version="2.1.0" diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/AllTests.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/AllTests.java index 98d77368a..98d77368a 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/AllTests.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/AllTests.java diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryContainerTest.java new file mode 100644 index 000000000..3f51b4f6e --- /dev/null +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryContainerTest.java @@ -0,0 +1,127 @@ +/******************************************************************************* + * Copyright (c) 2009 Markus Alexander Kuppe. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Markus Alexander Kuppe (ecf-dev_eclipse.org <at> lemmster <dot> de) - initial API and implementation + *******************************************************************************/ +package org.eclipse.ecf.tests.provider.discovery; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.eclipse.ecf.core.ContainerConnectException; +import org.eclipse.ecf.core.IContainer; +import org.eclipse.ecf.core.events.IContainerEvent; +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.core.util.ECFRuntimeException; +import org.eclipse.ecf.discovery.IServiceEvent; +import org.eclipse.ecf.discovery.IServiceInfo; +import org.eclipse.ecf.discovery.identity.IServiceTypeID; +import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; +import org.eclipse.ecf.provider.discovery.CompositeServiceContainerEvent; +import org.eclipse.ecf.tests.discovery.DiscoveryContainerTest; +import org.eclipse.ecf.tests.discovery.listener.TestServiceListener; + +public class CompositeDiscoveryContainerTest extends DiscoveryContainerTest { + + private TestDiscoveryContainer testDiscoveryContainer; + + public CompositeDiscoveryContainerTest() { + super(CompositeDiscoveryContainer.NAME); + setComparator(new CompositeServiceInfoComporator()); + //TODO jSLP currently has the longer rediscovery interval + setWaitTimeForProvider(Long.parseLong(System.getProperty("net.slp.rediscover", new Long(60L * 1000L).toString()))); //$NON-NLS-1$); + //TODO-mkuppe https://bugs.eclipse.org/bugs/show_bug.cgi?id=218308 + setScope(IServiceTypeID.DEFAULT_SCOPE[0]); + setHostname(System.getProperty("net.mdns.interface", "127.0.0.1")); + } + +// /* (non-Javadoc) +// * @see org.eclipse.ecf.tests.discovery.DiscoveryTest#setUp() +// */ +// protected void setUp() throws Exception { +// super.setUp(); +// eventsToExpect = ((CompositeDiscoveryContainer) discoveryLocator).getDiscoveryContainers().size(); +// } +// +// /** +// * Check if +// * @throws ContainerConnectException +// */ +// public void testAddContainerWithRegisteredServices() throws ContainerConnectException { +// try { +// try { +// discoveryAdvertiser.registerService(serviceInfo); +// } catch (ECFRuntimeException e) { +// fail("Registering a service failed on a new IDCA"); +// } +// CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; +// testDiscoveryContainer = new TestDiscoveryContainer(); +// assertTrue(cdc.addContainer(testDiscoveryContainer)); +// List registeredServices = testDiscoveryContainer.getRegisteredServices(); +// assertEquals("registerService(aService) wasn't called on TestDiscoveryContainer", serviceInfo, registeredServices.get(0)); +// } finally { +// CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; +// cdc.removeContainer(testDiscoveryContainer); +// } +// } +// +// public void testAddContainerWithoutRegisteredServices() throws ContainerConnectException { +// try { +// try { +// discoveryAdvertiser.registerService(serviceInfo); +// discoveryAdvertiser.unregisterService(serviceInfo); +// } catch (ECFRuntimeException e) { +// fail("Re-/Unregistering a service failed on a new IDCA"); +// } +// CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; +// testDiscoveryContainer = new TestDiscoveryContainer(); +// assertTrue(cdc.addContainer(testDiscoveryContainer)); +// List registeredServices = testDiscoveryContainer.getRegisteredServices(); +// assertTrue(registeredServices.isEmpty()); +// } finally { +// CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; +// cdc.removeContainer(testDiscoveryContainer); +// } +// } +// +// protected void addServiceListener(TestServiceListener serviceListener) { +// discoveryLocator.addServiceListener(serviceListener); +// addListenerRegisterAndWait(serviceListener, serviceInfo); +// discoveryLocator.removeServiceListener(serviceListener); +// +// // make sure we use a live container; +// final IContainer ic = (IContainer) serviceListener.getLocator(); +// assertTrue(ic.getConnectedID() != null); +// +// // check if we received correct amount of events +// final IContainerEvent[] events = serviceListener.getEvent(); +// assertNotNull("Test listener didn't receive any discovery events.", events); +// assertEquals("Test listener received unexpected amount of discovery events: \n\t" + Arrays.asList(events), eventsToExpect, events.length); +// +// final List origContainers = new ArrayList(); +// for (int i = 0; i < events.length; i++) { +// final CompositeServiceContainerEvent event = (CompositeServiceContainerEvent) events[i]; +// +// // check if the local container is hidden correctly +// final ID localContainerId = event.getLocalContainerID(); +// final ID connectedId = container.getConnectedID(); +// assertEquals(localContainerId, connectedId); +// +// // check the IServiceInfo for correct fields/properties +// final IServiceInfo serviceInfo2 = ((IServiceEvent) event).getServiceInfo(); +// assertTrue("IServiceInfo should match, expected:\n\t" + serviceInfo + " but was \n\t" + serviceInfo2, comparator.compare(serviceInfo2, serviceInfo) == 0); +// +// // add the underlying discovery container the the result set +// origContainers.add(event.getOriginalLocalContainerID()); +// } +// // check that all underlying containers fired an event +// assertEquals("A nested container didn't send an event, but another multiple.", eventsToExpect, origContainers.size()); +// } + +} diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerWithoutRegTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryContainerWithoutRegTest.java index 8e6f585ac..5ee9bd5e7 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerWithoutRegTest.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryContainerWithoutRegTest.java @@ -16,8 +16,8 @@ import org.eclipse.ecf.tests.discovery.DiscoveryTestsWithoutRegister; public class CompositeDiscoveryContainerWithoutRegTest extends DiscoveryTestsWithoutRegister { - public CompositeDiscoveryContainerWithoutRegTest() { - super(CompositeDiscoveryContainer.NAME); - } +// public CompositeDiscoveryContainerWithoutRegTest() { +// super(CompositeDiscoveryContainer.NAME); +// } } diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryServiceContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryServiceContainerTest.java new file mode 100644 index 000000000..ecb914db0 --- /dev/null +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeDiscoveryServiceContainerTest.java @@ -0,0 +1,121 @@ +/******************************************************************************* + * Copyright (c) 2009 Markus Alexander Kuppe. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Markus Alexander Kuppe (ecf-dev_eclipse.org <at> lemmster <dot> de) - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.tests.provider.discovery; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import org.eclipse.ecf.core.IContainer; +import org.eclipse.ecf.core.events.IContainerEvent; +import org.eclipse.ecf.core.identity.ID; +import org.eclipse.ecf.discovery.IDiscoveryLocator; +import org.eclipse.ecf.discovery.IServiceEvent; +import org.eclipse.ecf.discovery.IServiceInfo; +import org.eclipse.ecf.discovery.identity.IServiceTypeID; +import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; +import org.eclipse.ecf.provider.discovery.CompositeServiceContainerEvent; +import org.eclipse.ecf.tests.discovery.DiscoveryServiceTest; +import org.eclipse.ecf.tests.discovery.listener.TestServiceListener; + +public class CompositeDiscoveryServiceContainerTest extends + DiscoveryServiceTest { + +// private IContainer container; +// +// public CompositeDiscoveryServiceContainerTest() { +// super("ecf.discovery.composite"); +// setComparator(new CompositeServiceInfoComporator()); +// //TODO jSLP currently has the longer rediscovery interval +// setWaitTimeForProvider(Long.parseLong(System.getProperty("net.slp.rediscover", new Long(60L * 1000L).toString()))); //$NON-NLS-1$); +// //TODO-mkuppe https://bugs.eclipse.org/bugs/show_bug.cgi?id=218308 +// setScope(IServiceTypeID.DEFAULT_SCOPE[0]); +// setHostname(System.getProperty("net.mdns.interface", "127.0.0.1")); +// } +// +// /* (non-Javadoc) +// * @see org.eclipse.ecf.tests.discovery.DiscoveryServiceTest#setUp() +// */ +// protected void setUp() throws Exception { +// super.setUp(); +// container = (IContainer) discoveryLocator; +// +// final Collection discoveryContainers = ((CompositeDiscoveryContainer) discoveryLocator) +// .getDiscoveryContainers(); +// final Set s = new HashSet(); +// for (final Iterator itr = discoveryContainers.iterator(); itr.hasNext();) { +// final IDiscoveryLocator object = (IDiscoveryLocator) itr.next(); +// final IContainer adapter = (IContainer) object +// .getAdapter(IContainer.class); +// s.add(adapter.getID()); +// } +// // make sure it's never (accidentally) modified by a test +// idsToExpect = Collections.unmodifiableSet(s); +// +// eventsToExpect = discoveryContainers.size(); +// +// assertTrue("zero events make no sense", eventsToExpect > 0); +// } +// +// protected void addServiceListener(TestServiceListener serviceListener) { +// discoveryLocator.addServiceListener(serviceListener); +// addListenerRegisterAndWait(serviceListener, serviceInfo); +// discoveryLocator.removeServiceListener(serviceListener); +// +// // make sure we use a live container; +// final IContainer ic = (IContainer) serviceListener.getLocator(); +// assertTrue(ic.getConnectedID() != null); +// +// // check if we received correct amount of events +// final IContainerEvent[] events = serviceListener.getEvent(); +// assertNotNull("Test listener didn't receive any discovery events.", events); +// assertEquals("Test listener received unexpected amount of discovery events: \n\t" + Arrays.asList(events), eventsToExpect, events.length); +// +// final List origContainers = new ArrayList(); +// for (int i = 0; i < events.length; i++) { +// final CompositeServiceContainerEvent event = (CompositeServiceContainerEvent) events[i]; +// +// // check if the local container is hidden correctly +// final ID localContainerId = event.getLocalContainerID(); +// final ID connectedId = container.getConnectedID(); +// assertEquals(localContainerId, connectedId); +// +// // check the IServiceInfo for correct fields/properties +// final IServiceInfo serviceInfo2 = ((IServiceEvent) event).getServiceInfo(); +// assertTrue("IServiceInfo should match, expected:\n\t" + serviceInfo + " but was \n\t" + serviceInfo2, comparator.compare(serviceInfo2, serviceInfo) == 0); +// +// // add the underlying discovery container the the result set +// origContainers.add(event.getOriginalLocalContainerID()); +// } +// // check that all underlying containers fired an event +// assertEquals("A nested container didn't send an event, but another multiple.", eventsToExpect, origContainers.size()); +// } +// +// protected Collection getContainerIds(IContainerEvent[] events) { +// final Collection originalIds = new ArrayList(); +// for (int i = 0; i < events.length; i++) { +// final IContainerEvent iContainerEvent = events[i]; +// if (iContainerEvent instanceof CompositeServiceContainerEvent) { +// final CompositeServiceContainerEvent csce = (CompositeServiceContainerEvent) iContainerEvent; +// originalIds.add(csce.getOriginalLocalContainerID()); +// } else { +// System.err.println("WARNING: Skipping non CompositeServiceContainerEvent in CompositeDiscoveryServiceContainerTest#getContainerIds(IContainerEvent[])"); +// //originalIds.add(iContainerEvent.getLocalContainerID()); +// } +// } +// return originalIds; +// } +} diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeServiceInfoComporator.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeServiceInfoComporator.java index 7654383ec..7654383ec 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeServiceInfoComporator.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/CompositeServiceInfoComporator.java diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/SingleCompositeDiscoveryServiceContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/SingleCompositeDiscoveryServiceContainerTest.java new file mode 100644 index 000000000..aa9f526e1 --- /dev/null +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/SingleCompositeDiscoveryServiceContainerTest.java @@ -0,0 +1,198 @@ +/******************************************************************************* + * Copyright (c) 2009, 2010 Markus Alexander Kuppe. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Markus Alexander Kuppe (ecf-dev_eclipse.org <at> lemmster <dot> de) - initial API and implementation + ******************************************************************************/ +package org.eclipse.ecf.tests.provider.discovery; + +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + +import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; +import org.eclipse.ecf.discovery.IDiscoveryLocator; +import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; +import org.eclipse.ecf.tests.discovery.Activator; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceReference; +import org.osgi.framework.ServiceRegistration; +import org.osgi.framework.hooks.service.EventHook; +import org.osgi.framework.hooks.service.FindHook; + +public abstract class SingleCompositeDiscoveryServiceContainerTest extends + CompositeDiscoveryServiceContainerTest { + + // Whether the OSGi hooks should be de-/registered after and before each + // individual test and not just after/before the test class. + // E.g. when tests are executed in random order and thus are interleaved + // with other tests, setUp/tearDown has to run after each test. Otherwise + // expect test failures. +// public static boolean SETUP_OSGI_HOOKS_PER_TEST = false; +// +// private static int testMethods; +// private static int testMethodsLeft; +// private static ServiceRegistration findHook; +// +// // count all test methods +// static { +// Method[] methods = SingleCompositeDiscoveryServiceContainerTest.class.getMethods(); +// for (int i = 0; i < methods.length; i++) { +// Method method = methods[i]; +// if (method.getName().startsWith("test") && method.getModifiers() == Modifier.PUBLIC) { +// testMethods++; +// } +// } +// testMethodsLeft = testMethods; +// } +// +// private final String ecfDiscoveryContainerName; +// private final String className; +// +// public SingleCompositeDiscoveryServiceContainerTest(String anECFDiscoveryContainerName, String aClassName) { +// ecfDiscoveryContainerName = anECFDiscoveryContainerName; +// className = aClassName; +// } +// +// private boolean doSetUp() { +// return SETUP_OSGI_HOOKS_PER_TEST || testMethodsLeft == testMethods; +// } +// +// private boolean doTearDown() { +// return SETUP_OSGI_HOOKS_PER_TEST || --testMethodsLeft == 0; +// } +// +// /* (non-Javadoc) +// * @see org.eclipse.ecf.tests.provider.discovery.CompositeDiscoveryServiceContainerTest#setUp() +// */ +// protected void setUp() throws Exception { +// // HACK: @BeforeClass JUnit4 functionality +// if(doSetUp()) { +// // HACK: forcefully start the (nested) discovery container if it hasn't been started yet +// // assuming the bundle declares a lazy start buddy policy +// Class.forName(className); +// +// // initially close the existing CDC to get rid of other test left overs +// Activator.getDefault().closeServiceTracker(containerUnderTest); +// +// final BundleContext context = Activator.getDefault().getContext(); +// final String[] clazzes = new String[]{FindHook.class.getName(), EventHook.class.getName()}; +// findHook = context.registerService(clazzes, new DiscoveryContainerFilterHook(ecfDiscoveryContainerName), null); +// } +// super.setUp(); +// } +// +// /* (non-Javadoc) +// * @see org.eclipse.ecf.tests.discovery.DiscoveryTest#tearDown() +// */ +// protected void tearDown() throws Exception { +// super.tearDown(); +// // HACK: @BeforeClass JUnit4 functionality +// if(doTearDown()) { +// if(findHook != null) { +// findHook.unregister(); +// findHook = null; +// } +// // close tracker to force creation of a new CDC instance +// Activator.getDefault().closeServiceTracker(containerUnderTest); +// +// // reset so other instances can reuse +// testMethodsLeft = testMethods; +// } +// } +// +// /* (non-Javadoc) +// * @see org.eclipse.ecf.tests.discovery.DiscoveryServiceTest#getDiscoveryLocator() +// */ +// protected IDiscoveryLocator getDiscoveryLocator() { +// final IDiscoveryLocator idl = super.getDiscoveryLocator(); +// checkCompositeDiscoveryContainer(className, (CompositeDiscoveryContainer)idl); +// return idl; +// } +// +// +// /* (non-Javadoc) +// * @see org.eclipse.ecf.tests.discovery.DiscoveryServiceTest#getDiscoveryAdvertiser() +// */ +// protected IDiscoveryAdvertiser getDiscoveryAdvertiser() { +// final IDiscoveryAdvertiser ida = super.getDiscoveryAdvertiser(); +// checkCompositeDiscoveryContainer(className, (CompositeDiscoveryContainer)ida); +// return ida; +// } +// +// // make sure the CDC has only a single IDC registered with the correct type +// private static void checkCompositeDiscoveryContainer(final String aClassName, final CompositeDiscoveryContainer cdc) { +// final Collection discoveryContainers = cdc.getDiscoveryContainers(); +// assertTrue("One IDiscoveryContainer must be registered with the CDC at this point: " + discoveryContainers, discoveryContainers.size() == 1); +// for (final Iterator iterator = discoveryContainers.iterator(); iterator.hasNext();) { +// final IDiscoveryLocator dl = (IDiscoveryLocator) iterator.next(); +// assertEquals(aClassName, dl.getClass().getName()); +// } +// } +// +// // Filters the corresponding IDC from the result set that is _not_ supposed to be part of the test +// // we need an EventHook too because due to ECF's namespaces the "other" bundle is started asynchronously +// // and consequently registered with the CDC +// private class DiscoveryContainerFilterHook implements FindHook, EventHook { +// +// private static final String BUNDLE_UNDER_TEST = "org.eclipse.ecf.provider.discovery"; // rename if bundle name change +// private final String containerName; +// +// public DiscoveryContainerFilterHook(String anECFDiscoveryContainerName) { +// containerName = anECFDiscoveryContainerName; +// } +// +// /* (non-Javadoc) +// * @see org.osgi.framework.hooks.service.FindHook#find(org.osgi.framework.BundleContext, java.lang.String, java.lang.String, boolean, java.util.Collection) +// */ +// public void find(BundleContext context, String name, String filter, boolean allServices, Collection references) { +// +// // is it the composite discovery bundle who tries to find the service? +// final String symbolicName = context.getBundle().getSymbolicName(); +// final Collection removees = new ArrayList(); +// if(BUNDLE_UNDER_TEST.equals(symbolicName)) { +// for (final Iterator iterator = references.iterator(); iterator.hasNext();) { +// // filter the corresponding container +// final ServiceReference serviceReference = (ServiceReference) iterator.next(); +// final String property = (String) serviceReference.getProperty(IDiscoveryLocator.CONTAINER_NAME); +// if(property != null && property.equals(containerName)) { +// removees.add(serviceReference); +// System.out.println("Removed reference: " + property); +// break; +// } +// } +// references.removeAll(removees); +// } +// } +// +// /* (non-Javadoc) +// * @see org.osgi.framework.hooks.service.EventHook#event(org.osgi.framework.ServiceEvent, java.util.Collection) +// */ +// public void event(ServiceEvent aServiceEvent, Collection aCollection) { +// if (aServiceEvent.getType() == ServiceEvent.REGISTERED) { +// final ServiceReference serviceReference = aServiceEvent.getServiceReference(); +// final String property = (String) serviceReference.getProperty(IDiscoveryLocator.CONTAINER_NAME); +// if(property != null && property.equals(containerName)) { +// final Collection removees = new ArrayList(); +// for (Iterator iterator = aCollection.iterator(); iterator.hasNext();) { +// final BundleContext bundleContext = (BundleContext) iterator.next(); +// final String symbolicName = bundleContext.getBundle().getSymbolicName(); +// if(BUNDLE_UNDER_TEST.equals(symbolicName)) { +// removees.add(bundleContext); +// System.out.println("Filtered reference: " + property); +// break; +// } +// } +// aCollection.removeAll(removees); +// } +// } +// } +// } +} diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/TestDiscoveryContainer.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/TestDiscoveryContainer.java index 822c6c9e3..822c6c9e3 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/TestDiscoveryContainer.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/TestDiscoveryContainer.java diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/WithoutJMDNSCompositeDiscoveryServiceContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/WithoutJMDNSCompositeDiscoveryServiceContainerTest.java index d83a4c7a3..d83a4c7a3 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/WithoutJMDNSCompositeDiscoveryServiceContainerTest.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/WithoutJMDNSCompositeDiscoveryServiceContainerTest.java diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/WithoutJSLPCompositeDiscoveryServiceContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/WithoutJSLPCompositeDiscoveryServiceContainerTest.java index b54b1f105..b54b1f105 100644 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/WithoutJSLPCompositeDiscoveryServiceContainerTest.java +++ b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/archive/WithoutJSLPCompositeDiscoveryServiceContainerTest.java diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerTest.java deleted file mode 100644 index c846a4016..000000000 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryContainerTest.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Markus Alexander Kuppe. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Markus Alexander Kuppe (ecf-dev_eclipse.org <at> lemmster <dot> de) - initial API and implementation - *******************************************************************************/ -package org.eclipse.ecf.tests.provider.discovery; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.eclipse.ecf.core.ContainerConnectException; -import org.eclipse.ecf.core.IContainer; -import org.eclipse.ecf.core.events.IContainerEvent; -import org.eclipse.ecf.core.identity.ID; -import org.eclipse.ecf.core.util.ECFRuntimeException; -import org.eclipse.ecf.discovery.IServiceEvent; -import org.eclipse.ecf.discovery.IServiceInfo; -import org.eclipse.ecf.discovery.identity.IServiceTypeID; -import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; -import org.eclipse.ecf.provider.discovery.CompositeServiceContainerEvent; -import org.eclipse.ecf.tests.discovery.DiscoveryContainerTest; -import org.eclipse.ecf.tests.discovery.listener.TestServiceListener; - -public class CompositeDiscoveryContainerTest extends DiscoveryContainerTest { - - private TestDiscoveryContainer testDiscoveryContainer; - - public CompositeDiscoveryContainerTest() { - super(CompositeDiscoveryContainer.NAME); - setComparator(new CompositeServiceInfoComporator()); - //TODO jSLP currently has the longer rediscovery interval - setWaitTimeForProvider(Long.parseLong(System.getProperty("net.slp.rediscover", new Long(60L * 1000L).toString()))); //$NON-NLS-1$); - //TODO-mkuppe https://bugs.eclipse.org/bugs/show_bug.cgi?id=218308 - setScope(IServiceTypeID.DEFAULT_SCOPE[0]); - setHostname(System.getProperty("net.mdns.interface", "127.0.0.1")); - } - - /* (non-Javadoc) - * @see org.eclipse.ecf.tests.discovery.DiscoveryTest#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - eventsToExpect = ((CompositeDiscoveryContainer) discoveryLocator).getDiscoveryContainers().size(); - } - - /** - * Check if - * @throws ContainerConnectException - */ - public void testAddContainerWithRegisteredServices() throws ContainerConnectException { - try { - try { - discoveryAdvertiser.registerService(serviceInfo); - } catch (ECFRuntimeException e) { - fail("Registering a service failed on a new IDCA"); - } - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; - testDiscoveryContainer = new TestDiscoveryContainer(); - assertTrue(cdc.addContainer(testDiscoveryContainer)); - List registeredServices = testDiscoveryContainer.getRegisteredServices(); - assertEquals("registerService(aService) wasn't called on TestDiscoveryContainer", serviceInfo, registeredServices.get(0)); - } finally { - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; - cdc.removeContainer(testDiscoveryContainer); - } - } - - public void testAddContainerWithoutRegisteredServices() throws ContainerConnectException { - try { - try { - discoveryAdvertiser.registerService(serviceInfo); - discoveryAdvertiser.unregisterService(serviceInfo); - } catch (ECFRuntimeException e) { - fail("Re-/Unregistering a service failed on a new IDCA"); - } - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; - testDiscoveryContainer = new TestDiscoveryContainer(); - assertTrue(cdc.addContainer(testDiscoveryContainer)); - List registeredServices = testDiscoveryContainer.getRegisteredServices(); - assertTrue(registeredServices.isEmpty()); - } finally { - CompositeDiscoveryContainer cdc = (CompositeDiscoveryContainer) discoveryLocator; - cdc.removeContainer(testDiscoveryContainer); - } - } - - protected void addServiceListener(TestServiceListener serviceListener) { - discoveryLocator.addServiceListener(serviceListener); - addListenerRegisterAndWait(serviceListener, serviceInfo); - discoveryLocator.removeServiceListener(serviceListener); - - // make sure we use a live container; - final IContainer ic = (IContainer) serviceListener.getLocator(); - assertTrue(ic.getConnectedID() != null); - - // check if we received correct amount of events - final IContainerEvent[] events = serviceListener.getEvent(); - assertNotNull("Test listener didn't receive any discovery events.", events); - assertEquals("Test listener received unexpected amount of discovery events: \n\t" + Arrays.asList(events), eventsToExpect, events.length); - - final List origContainers = new ArrayList(); - for (int i = 0; i < events.length; i++) { - final CompositeServiceContainerEvent event = (CompositeServiceContainerEvent) events[i]; - - // check if the local container is hidden correctly - final ID localContainerId = event.getLocalContainerID(); - final ID connectedId = container.getConnectedID(); - assertEquals(localContainerId, connectedId); - - // check the IServiceInfo for correct fields/properties - final IServiceInfo serviceInfo2 = ((IServiceEvent) event).getServiceInfo(); - assertTrue("IServiceInfo should match, expected:\n\t" + serviceInfo + " but was \n\t" + serviceInfo2, comparator.compare(serviceInfo2, serviceInfo) == 0); - - // add the underlying discovery container the the result set - origContainers.add(event.getOriginalLocalContainerID()); - } - // check that all underlying containers fired an event - assertEquals("A nested container didn't send an event, but another multiple.", eventsToExpect, origContainers.size()); - } -} diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryServiceContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryServiceContainerTest.java deleted file mode 100644 index 37917c44a..000000000 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/CompositeDiscoveryServiceContainerTest.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009 Markus Alexander Kuppe. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Markus Alexander Kuppe (ecf-dev_eclipse.org <at> lemmster <dot> de) - initial API and implementation - ******************************************************************************/ -package org.eclipse.ecf.tests.provider.discovery; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import org.eclipse.ecf.core.IContainer; -import org.eclipse.ecf.core.events.IContainerEvent; -import org.eclipse.ecf.core.identity.ID; -import org.eclipse.ecf.discovery.IDiscoveryLocator; -import org.eclipse.ecf.discovery.IServiceEvent; -import org.eclipse.ecf.discovery.IServiceInfo; -import org.eclipse.ecf.discovery.identity.IServiceTypeID; -import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; -import org.eclipse.ecf.provider.discovery.CompositeServiceContainerEvent; -import org.eclipse.ecf.tests.discovery.DiscoveryServiceTest; -import org.eclipse.ecf.tests.discovery.listener.TestServiceListener; - -public class CompositeDiscoveryServiceContainerTest extends - DiscoveryServiceTest { - - private IContainer container; - - public CompositeDiscoveryServiceContainerTest() { - super("ecf.discovery.composite"); - setComparator(new CompositeServiceInfoComporator()); - //TODO jSLP currently has the longer rediscovery interval - setWaitTimeForProvider(Long.parseLong(System.getProperty("net.slp.rediscover", new Long(60L * 1000L).toString()))); //$NON-NLS-1$); - //TODO-mkuppe https://bugs.eclipse.org/bugs/show_bug.cgi?id=218308 - setScope(IServiceTypeID.DEFAULT_SCOPE[0]); - setHostname(System.getProperty("net.mdns.interface", "127.0.0.1")); - } - - /* (non-Javadoc) - * @see org.eclipse.ecf.tests.discovery.DiscoveryServiceTest#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - container = (IContainer) discoveryLocator; - - final Collection discoveryContainers = ((CompositeDiscoveryContainer) discoveryLocator) - .getDiscoveryContainers(); - final Set s = new HashSet(); - for (final Iterator itr = discoveryContainers.iterator(); itr.hasNext();) { - final IDiscoveryLocator object = (IDiscoveryLocator) itr.next(); - final IContainer adapter = (IContainer) object - .getAdapter(IContainer.class); - s.add(adapter.getID()); - } - // make sure it's never (accidentally) modified by a test - idsToExpect = Collections.unmodifiableSet(s); - - eventsToExpect = discoveryContainers.size(); - - assertTrue("zero events make no sense", eventsToExpect > 0); - } - - protected void addServiceListener(TestServiceListener serviceListener) { - discoveryLocator.addServiceListener(serviceListener); - addListenerRegisterAndWait(serviceListener, serviceInfo); - discoveryLocator.removeServiceListener(serviceListener); - - // make sure we use a live container; - final IContainer ic = (IContainer) serviceListener.getLocator(); - assertTrue(ic.getConnectedID() != null); - - // check if we received correct amount of events - final IContainerEvent[] events = serviceListener.getEvent(); - assertNotNull("Test listener didn't receive any discovery events.", events); - assertEquals("Test listener received unexpected amount of discovery events: \n\t" + Arrays.asList(events), eventsToExpect, events.length); - - final List origContainers = new ArrayList(); - for (int i = 0; i < events.length; i++) { - final CompositeServiceContainerEvent event = (CompositeServiceContainerEvent) events[i]; - - // check if the local container is hidden correctly - final ID localContainerId = event.getLocalContainerID(); - final ID connectedId = container.getConnectedID(); - assertEquals(localContainerId, connectedId); - - // check the IServiceInfo for correct fields/properties - final IServiceInfo serviceInfo2 = ((IServiceEvent) event).getServiceInfo(); - assertTrue("IServiceInfo should match, expected:\n\t" + serviceInfo + " but was \n\t" + serviceInfo2, comparator.compare(serviceInfo2, serviceInfo) == 0); - - // add the underlying discovery container the the result set - origContainers.add(event.getOriginalLocalContainerID()); - } - // check that all underlying containers fired an event - assertEquals("A nested container didn't send an event, but another multiple.", eventsToExpect, origContainers.size()); - } - - protected Collection getContainerIds(IContainerEvent[] events) { - final Collection originalIds = new ArrayList(); - for (int i = 0; i < events.length; i++) { - final IContainerEvent iContainerEvent = events[i]; - if (iContainerEvent instanceof CompositeServiceContainerEvent) { - final CompositeServiceContainerEvent csce = (CompositeServiceContainerEvent) iContainerEvent; - originalIds.add(csce.getOriginalLocalContainerID()); - } else { - System.err.println("WARNING: Skipping non CompositeServiceContainerEvent in CompositeDiscoveryServiceContainerTest#getContainerIds(IContainerEvent[])"); - //originalIds.add(iContainerEvent.getLocalContainerID()); - } - } - return originalIds; - } -} diff --git a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/SingleCompositeDiscoveryServiceContainerTest.java b/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/SingleCompositeDiscoveryServiceContainerTest.java deleted file mode 100644 index 58150d614..000000000 --- a/tests/bundles/org.eclipse.ecf.tests.provider.discovery/src/org/eclipse/ecf/tests/provider/discovery/SingleCompositeDiscoveryServiceContainerTest.java +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2009, 2010 Markus Alexander Kuppe. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Markus Alexander Kuppe (ecf-dev_eclipse.org <at> lemmster <dot> de) - initial API and implementation - ******************************************************************************/ -package org.eclipse.ecf.tests.provider.discovery; - -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; - -import org.eclipse.ecf.discovery.IDiscoveryAdvertiser; -import org.eclipse.ecf.discovery.IDiscoveryLocator; -import org.eclipse.ecf.provider.discovery.CompositeDiscoveryContainer; -import org.eclipse.ecf.tests.discovery.Activator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceEvent; -import org.osgi.framework.ServiceReference; -import org.osgi.framework.ServiceRegistration; -import org.osgi.framework.hooks.service.EventHook; -import org.osgi.framework.hooks.service.FindHook; - -public abstract class SingleCompositeDiscoveryServiceContainerTest extends - CompositeDiscoveryServiceContainerTest { - - // Whether the OSGi hooks should be de-/registered after and before each - // individual test and not just after/before the test class. - // E.g. when tests are executed in random order and thus are interleaved - // with other tests, setUp/tearDown has to run after each test. Otherwise - // expect test failures. - public static boolean SETUP_OSGI_HOOKS_PER_TEST = false; - - private static int testMethods; - private static int testMethodsLeft; - private static ServiceRegistration findHook; - - // count all test methods - static { - Method[] methods = SingleCompositeDiscoveryServiceContainerTest.class.getMethods(); - for (int i = 0; i < methods.length; i++) { - Method method = methods[i]; - if (method.getName().startsWith("test") && method.getModifiers() == Modifier.PUBLIC) { - testMethods++; - } - } - testMethodsLeft = testMethods; - } - - private final String ecfDiscoveryContainerName; - private final String className; - - public SingleCompositeDiscoveryServiceContainerTest(String anECFDiscoveryContainerName, String aClassName) { - ecfDiscoveryContainerName = anECFDiscoveryContainerName; - className = aClassName; - } - - private boolean doSetUp() { - return SETUP_OSGI_HOOKS_PER_TEST || testMethodsLeft == testMethods; - } - - private boolean doTearDown() { - return SETUP_OSGI_HOOKS_PER_TEST || --testMethodsLeft == 0; - } - - /* (non-Javadoc) - * @see org.eclipse.ecf.tests.provider.discovery.CompositeDiscoveryServiceContainerTest#setUp() - */ - protected void setUp() throws Exception { - // HACK: @BeforeClass JUnit4 functionality - if(doSetUp()) { - // HACK: forcefully start the (nested) discovery container if it hasn't been started yet - // assuming the bundle declares a lazy start buddy policy - Class.forName(className); - - // initially close the existing CDC to get rid of other test left overs - Activator.getDefault().closeServiceTracker(containerUnderTest); - - final BundleContext context = Activator.getDefault().getContext(); - final String[] clazzes = new String[]{FindHook.class.getName(), EventHook.class.getName()}; - findHook = context.registerService(clazzes, new DiscoveryContainerFilterHook(ecfDiscoveryContainerName), null); - } - super.setUp(); - } - - /* (non-Javadoc) - * @see org.eclipse.ecf.tests.discovery.DiscoveryTest#tearDown() - */ - protected void tearDown() throws Exception { - super.tearDown(); - // HACK: @BeforeClass JUnit4 functionality - if(doTearDown()) { - if(findHook != null) { - findHook.unregister(); - findHook = null; - } - // close tracker to force creation of a new CDC instance - Activator.getDefault().closeServiceTracker(containerUnderTest); - - // reset so other instances can reuse - testMethodsLeft = testMethods; - } - } - - /* (non-Javadoc) - * @see org.eclipse.ecf.tests.discovery.DiscoveryServiceTest#getDiscoveryLocator() - */ - protected IDiscoveryLocator getDiscoveryLocator() { - final IDiscoveryLocator idl = super.getDiscoveryLocator(); - checkCompositeDiscoveryContainer(className, (CompositeDiscoveryContainer)idl); - return idl; - } - - - /* (non-Javadoc) - * @see org.eclipse.ecf.tests.discovery.DiscoveryServiceTest#getDiscoveryAdvertiser() - */ - protected IDiscoveryAdvertiser getDiscoveryAdvertiser() { - final IDiscoveryAdvertiser ida = super.getDiscoveryAdvertiser(); - checkCompositeDiscoveryContainer(className, (CompositeDiscoveryContainer)ida); - return ida; - } - - // make sure the CDC has only a single IDC registered with the correct type - private static void checkCompositeDiscoveryContainer(final String aClassName, final CompositeDiscoveryContainer cdc) { - final Collection discoveryContainers = cdc.getDiscoveryContainers(); - assertTrue("One IDiscoveryContainer must be registered with the CDC at this point: " + discoveryContainers, discoveryContainers.size() == 1); - for (final Iterator iterator = discoveryContainers.iterator(); iterator.hasNext();) { - final IDiscoveryLocator dl = (IDiscoveryLocator) iterator.next(); - assertEquals(aClassName, dl.getClass().getName()); - } - } - - // Filters the corresponding IDC from the result set that is _not_ supposed to be part of the test - // we need an EventHook too because due to ECF's namespaces the "other" bundle is started asynchronously - // and consequently registered with the CDC - private class DiscoveryContainerFilterHook implements FindHook, EventHook { - - private static final String BUNDLE_UNDER_TEST = "org.eclipse.ecf.provider.discovery"; // rename if bundle name change - private final String containerName; - - public DiscoveryContainerFilterHook(String anECFDiscoveryContainerName) { - containerName = anECFDiscoveryContainerName; - } - - /* (non-Javadoc) - * @see org.osgi.framework.hooks.service.FindHook#find(org.osgi.framework.BundleContext, java.lang.String, java.lang.String, boolean, java.util.Collection) - */ - public void find(BundleContext context, String name, String filter, boolean allServices, Collection references) { - - // is it the composite discovery bundle who tries to find the service? - final String symbolicName = context.getBundle().getSymbolicName(); - final Collection removees = new ArrayList(); - if(BUNDLE_UNDER_TEST.equals(symbolicName)) { - for (final Iterator iterator = references.iterator(); iterator.hasNext();) { - // filter the corresponding container - final ServiceReference serviceReference = (ServiceReference) iterator.next(); - final String property = (String) serviceReference.getProperty(IDiscoveryLocator.CONTAINER_NAME); - if(property != null && property.equals(containerName)) { - removees.add(serviceReference); - System.out.println("Removed reference: " + property); - break; - } - } - references.removeAll(removees); - } - } - - /* (non-Javadoc) - * @see org.osgi.framework.hooks.service.EventHook#event(org.osgi.framework.ServiceEvent, java.util.Collection) - */ - public void event(ServiceEvent aServiceEvent, Collection aCollection) { - if (aServiceEvent.getType() == ServiceEvent.REGISTERED) { - final ServiceReference serviceReference = aServiceEvent.getServiceReference(); - final String property = (String) serviceReference.getProperty(IDiscoveryLocator.CONTAINER_NAME); - if(property != null && property.equals(containerName)) { - final Collection removees = new ArrayList(); - for (Iterator iterator = aCollection.iterator(); iterator.hasNext();) { - final BundleContext bundleContext = (BundleContext) iterator.next(); - final String symbolicName = bundleContext.getBundle().getSymbolicName(); - if(BUNDLE_UNDER_TEST.equals(symbolicName)) { - removees.add(bundleContext); - System.out.println("Filtered reference: " + property); - break; - } - } - aCollection.removeAll(removees); - } - } - } - } -} |