diff options
author | slewis | 2007-09-05 23:24:12 +0000 |
---|---|---|
committer | slewis | 2007-09-05 23:24:12 +0000 |
commit | b290d24f74ad1998df3a48ac39573363d17f731e (patch) | |
tree | 9d89ff61b9bd2957309f468c34f55c6a9e30dbe8 | |
parent | 157cba3e616cb32a28ed3f9338f348441d7a00ad (diff) | |
download | org.eclipse.ecf-b290d24f74ad1998df3a48ac39573363d17f731e.tar.gz org.eclipse.ecf-b290d24f74ad1998df3a48ac39573363d17f731e.tar.xz org.eclipse.ecf-b290d24f74ad1998df3a48ac39573363d17f731e.zip |
4 files changed, 136 insertions, 40 deletions
diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java index 59176475c..b74dd9dcf 100755 --- a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java +++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/AllTests.java @@ -23,8 +23,9 @@ public class AllTests { TestSuite suite = new TestSuite( "Test for org.eclipse.ecf.tests.discovery"); //$JUnit-BEGIN$ - suite.addTestSuite(DiscoveryTest.class); suite.addTestSuite(DiscoveryServiceTest.class); + suite.addTestSuite(DiscoveryTest.class); + suite.addTestSuite(JMDNSNamespaceTest.class); //$JUnit-END$ return suite; } diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java index 5edb10170..d5e2418f0 100755 --- a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java +++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryServiceTest.java @@ -22,23 +22,23 @@ import org.eclipse.ecf.discovery.IServiceTypeListener; import org.eclipse.ecf.discovery.ServiceInfo; import org.eclipse.ecf.discovery.ServiceProperties; import org.eclipse.ecf.discovery.identity.IServiceID; -import org.eclipse.ecf.discovery.identity.ServiceID; +import org.eclipse.ecf.discovery.identity.ServiceIDFactory; import org.eclipse.ecf.discovery.service.IDiscoveryService; public class DiscoveryServiceTest extends TestCase { - + static final String TEST_SERVICE_TYPE = "_ecftcp._tcp.local."; static final String TEST_PROTOCOL = "ecftcp"; static final String TEST_HOST = "localhost"; static final int TEST_PORT = 3282; static final String TEST_SERVICE_NAME = System.getProperty("user.name") + "." + TEST_PROTOCOL; - + protected IDiscoveryService discoveryInstance = null; - + protected IDiscoveryService getDiscoveryInstance() { return Activator.getDefault().getDiscoveryService(); } - + /* * (non-Javadoc) * @@ -48,7 +48,7 @@ public class DiscoveryServiceTest extends TestCase { super.setUp(); discoveryInstance = getDiscoveryInstance(); } - + /* * (non-Javadoc) * @@ -60,30 +60,29 @@ public class DiscoveryServiceTest extends TestCase { public void testAddServiceTypeListener() throws Exception { assertNotNull(discoveryInstance); - discoveryInstance - .addServiceTypeListener(new CollabServiceTypeListener()); + discoveryInstance.addServiceTypeListener(new CollabServiceTypeListener()); } - + public void testRegisterServiceType() throws Exception { - discoveryInstance.registerServiceType(TEST_SERVICE_TYPE); - System.out.println("registered service type "+TEST_SERVICE_TYPE+" waiting 5s"); + final IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(discoveryInstance.getServicesNamespace(), TEST_SERVICE_TYPE); + discoveryInstance.registerServiceType(serviceID.getServiceTypeID()); + System.out.println("registered service type " + TEST_SERVICE_TYPE + " waiting 5s"); Thread.sleep(5000); } - + public void testRegisterService() throws Exception { - Properties props = new Properties(); - String protocol = TEST_PROTOCOL; - InetAddress host = InetAddress.getByName(TEST_HOST); - int port = TEST_PORT; - String svcName = System.getProperty("user.name") + "." - + protocol; - ServiceInfo svcInfo = new ServiceInfo(host, new ServiceID( - TEST_SERVICE_TYPE, svcName), port, - 0, 0, new ServiceProperties(props)); + final Properties props = new Properties(); + final String protocol = TEST_PROTOCOL; + final InetAddress host = InetAddress.getByName(TEST_HOST); + final int port = TEST_PORT; + final String svcName = System.getProperty("user.name") + "." + protocol; + final IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(discoveryInstance.getServicesNamespace(), TEST_SERVICE_TYPE, svcName); + final ServiceInfo svcInfo = new ServiceInfo(host, serviceID, port, 0, 0, new ServiceProperties(props)); discoveryInstance.registerService(svcInfo); } + public final void testDiscovery() throws Exception { - + System.out.println("Discovery started. Waiting 10s for discovered services"); Thread.sleep(10000); } @@ -91,21 +90,22 @@ public class DiscoveryServiceTest extends TestCase { class CollabServiceTypeListener implements IServiceTypeListener { public void serviceTypeAdded(IServiceEvent event) { System.out.println("serviceTypeAdded(" + event + ")"); - IServiceID svcID = event.getServiceInfo().getServiceID(); - discoveryInstance.addServiceListener(svcID.getServiceType(), - new CollabServiceListener()); - discoveryInstance.registerServiceType(svcID.getServiceType()); + final IServiceID svcID = event.getServiceInfo().getServiceID(); + discoveryInstance.addServiceListener(svcID.getServiceTypeID(), new CollabServiceListener()); + discoveryInstance.registerServiceType(svcID.getServiceTypeID()); } } + class CollabServiceListener implements IServiceListener { public void serviceAdded(IServiceEvent event) { System.out.println("serviceAdded(" + event + ")"); - discoveryInstance.requestServiceInfo(event.getServiceInfo() - .getServiceID(), 3000); + discoveryInstance.requestServiceInfo(event.getServiceInfo().getServiceID(), 3000); } + public void serviceRemoved(IServiceEvent event) { System.out.println("serviceRemoved(" + event + ")"); } + public void serviceResolved(IServiceEvent event) { System.out.println("serviceResolved(" + event + ")"); } diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java index 8b8ee4d7c..e70ff77b1 100755 --- a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java +++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/DiscoveryTest.java @@ -18,6 +18,8 @@ import junit.framework.TestCase; import org.eclipse.ecf.core.ContainerFactory; import org.eclipse.ecf.core.IContainer; +import org.eclipse.ecf.core.identity.IDFactory; +import org.eclipse.ecf.core.identity.Namespace; import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter; import org.eclipse.ecf.discovery.IServiceEvent; import org.eclipse.ecf.discovery.IServiceListener; @@ -25,7 +27,7 @@ import org.eclipse.ecf.discovery.IServiceTypeListener; import org.eclipse.ecf.discovery.ServiceInfo; import org.eclipse.ecf.discovery.ServiceProperties; import org.eclipse.ecf.discovery.identity.IServiceID; -import org.eclipse.ecf.discovery.identity.ServiceID; +import org.eclipse.ecf.discovery.identity.ServiceIDFactory; public class DiscoveryTest extends TestCase { @@ -63,18 +65,22 @@ public class DiscoveryTest extends TestCase { } public void testRegisterServiceType() throws Exception { - discoveryContainer.registerServiceType(TEST_SERVICE_TYPE); + final IServiceID serviceID = ServiceIDFactory.getDefault().createServiceID(discoveryContainer.getServicesNamespace(), TEST_SERVICE_TYPE); + discoveryContainer.registerServiceType(serviceID.getServiceTypeID()); System.out.println("registered service type " + TEST_SERVICE_TYPE + " waiting 5s"); Thread.sleep(5000); } public void testRegisterService() throws Exception { - Properties props = new Properties(); - String protocol = TEST_PROTOCOL; - InetAddress host = InetAddress.getByName(TEST_HOST); - int port = TEST_PORT; - String svcName = System.getProperty("user.name") + "." + protocol; - ServiceInfo svcInfo = new ServiceInfo(host, new ServiceID(TEST_SERVICE_TYPE, svcName), port, 0, 0, new ServiceProperties(props)); + final Properties props = new Properties(); + final String protocol = TEST_PROTOCOL; + final InetAddress host = InetAddress.getByName(TEST_HOST); + final int port = TEST_PORT; + final String svcName = System.getProperty("user.name") + "." + protocol; + // XXX change this to create IServiceID in appropriate way + final Namespace ns = IDFactory.getDefault().getNamespaceByName("ecf.namespace.jmdns"); + final IServiceID serviceID = (IServiceID) IDFactory.getDefault().createID(ns, new Object[] {TEST_SERVICE_TYPE, svcName}); + final ServiceInfo svcInfo = new ServiceInfo(host, serviceID, port, 0, 0, new ServiceProperties(props)); discoveryContainer.registerService(svcInfo); } @@ -87,9 +93,9 @@ public class DiscoveryTest extends TestCase { class CollabServiceTypeListener implements IServiceTypeListener { public void serviceTypeAdded(IServiceEvent event) { System.out.println("serviceTypeAdded(" + event + ")"); - IServiceID svcID = event.getServiceInfo().getServiceID(); - discoveryContainer.addServiceListener(svcID.getServiceType(), new CollabServiceListener()); - discoveryContainer.registerServiceType(svcID.getServiceType()); + final IServiceID svcID = event.getServiceInfo().getServiceID(); + discoveryContainer.addServiceListener(svcID.getServiceTypeID(), new CollabServiceListener()); + discoveryContainer.registerServiceType(svcID.getServiceTypeID()); } } diff --git a/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/JMDNSNamespaceTest.java b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/JMDNSNamespaceTest.java new file mode 100755 index 000000000..ea0fe8ee2 --- /dev/null +++ b/tests/bundles/org.eclipse.ecf.tests.discovery/src/org/eclipse/ecf/tests/discovery/JMDNSNamespaceTest.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * Copyright (c) 2007 Versant Corp. + * 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 Kuppe (mkuppe <at> versant <dot> com) - initial API and implementation + ******************************************************************************/ + +package org.eclipse.ecf.tests.discovery; + +import java.util.Arrays; + +import junit.framework.TestCase; + +import org.eclipse.ecf.core.identity.IDCreateException; +import org.eclipse.ecf.core.identity.IDFactory; +import org.eclipse.ecf.discovery.identity.IServiceID; +import org.eclipse.ecf.discovery.identity.IServiceTypeID; +import org.eclipse.ecf.discovery.identity.ServiceIDFactory; + +/** + * + */ +public class JMDNSNamespaceTest extends TestCase { + private IServiceID createID(String serviceType, String serviceName) { + try { + return createIDWithEx(serviceType, serviceName); + } catch (final IDCreateException e) { + fail(e.getMessage()); + } catch (final ClassCastException e) { + fail(e.getMessage()); + } + return null; + } + + private IServiceID createIDWithEx(String serviceType, String serviceName) throws IDCreateException { + return ServiceIDFactory.getDefault().createServiceID(IDFactory.getDefault().getNamespaceByName("ecf.namespace.jmdns"), serviceType, serviceName); + } + + public void testJMDNSServiceTypeID() { + final IServiceID sid = createID(DiscoveryServiceTest.TEST_SERVICE_TYPE, null); + final IServiceTypeID stid = sid.getServiceTypeID(); + assertEquals(stid.getName(), DiscoveryServiceTest.TEST_SERVICE_TYPE); + assertEquals(stid.getNamingAuthority(), "IANA"); + assertTrue(Arrays.equals(stid.getProtocols(), new String[] {"tcp"})); + assertTrue(Arrays.equals(stid.getScopes(), new String[] {"local"})); + assertTrue(Arrays.equals(stid.getServices(), new String[] {"ecftcp"})); + } + + public void testJMDNSServiceTypeID2() { + final String serviceType = "_service._dns-srv._udp.ecf.eclipse.org."; + final IServiceID sid = createID(serviceType, null); + final IServiceTypeID stid = sid.getServiceTypeID(); + assertEquals(stid.getName(), serviceType); + assertEquals(stid.getNamingAuthority(), "IANA"); + assertTrue(Arrays.equals(stid.getProtocols(), new String[] {"udp"})); + assertTrue(Arrays.equals(stid.getScopes(), new String[] {"ecf.eclipse.org"})); + assertTrue(Arrays.equals(stid.getServices(), new String[] {"service", "dns-srv"})); + } + + public void testJMDNSServiceTypeIDWithNullString() { + try { + createIDWithEx(null, null); + } catch (final IDCreateException ex) { + return; + } + fail(); + } + + public void testJMDNSServiceTypeIDWithEmptyString() { + try { + createIDWithEx("", null); + } catch (final IDCreateException ex) { + return; + } + fail(); + } + + /* + public void testJMDNSServiceTypeIDWithIPv6() { + final String serviceType = "1.0.0.0.0.c.e.f.f.f.6.5.0.5.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa."; + fail("Not implemented yet, don't know how to handle this service type " + serviceType + " if it even is one"); + } + */ + +} |