/******************************************************************************* * 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.net.URI; import java.util.Comparator; import junit.framework.TestCase; import org.eclipse.ecf.core.identity.IDCreateException; import org.eclipse.ecf.core.identity.Namespace; import org.eclipse.ecf.discovery.IServiceInfo; import org.eclipse.ecf.discovery.IServiceProperties; import org.eclipse.ecf.discovery.ServiceInfo; import org.eclipse.ecf.discovery.ServiceProperties; import org.eclipse.ecf.discovery.identity.IServiceTypeID; import org.eclipse.ecf.discovery.identity.ServiceIDFactory; /** * */ public abstract class ServiceInfoTest extends TestCase { protected URI uri; protected IServiceTypeID serviceTypeID; protected int priority; protected int weight; protected IServiceProperties serviceProperties; protected IServiceInfo serviceInfo; protected Comparator serviceInfoComparator = new ServiceInfoComparator(); public ServiceInfoTest(Namespace namespace) { uri = DiscoveryTestHelper.createDefaultURI(DiscoveryTestHelper.HOSTNAME); priority = DiscoveryTestHelper.PRIORITY; weight = DiscoveryTestHelper.WEIGHT; serviceProperties = new ServiceProperties(); serviceProperties.setProperty("foobar", new String("foobar")); serviceProperties.setPropertyBytes("foobar1", new byte[] { 1, 2, 3 }); try { serviceTypeID = ServiceIDFactory.getDefault().createServiceTypeID(namespace, DiscoveryTestHelper.SERVICES, DiscoveryTestHelper.PROTOCOLS); } catch (IDCreateException e) { fail(e.getMessage()); } serviceInfo = new ServiceInfo(uri, DiscoveryTestHelper.SERVICENAME, serviceTypeID, priority, weight, serviceProperties); } /* (non-Javadoc) * @see junit.framework.TestCase#setUp() */ protected void setUp() throws Exception { super.setUp(); assertNotNull(uri); assertNotNull(serviceTypeID); assertNotNull(serviceProperties); assertNotNull(serviceInfo); assertNotNull(serviceInfoComparator); } /** * Test method for {@link org.eclipse.ecf.discovery.ServiceInfo#getLocation()}. */ public void testGetLocation() { assertEquals(serviceInfo.getServiceID().getLocation(), uri); } /** * Test method for {@link org.eclipse.ecf.discovery.ServiceInfo#getServiceID()}. */ public void testGetServiceID() { assertNotNull(serviceInfo.getServiceID()); assertEquals(serviceInfo.getServiceID().getServiceTypeID(), serviceTypeID); } /** * Test method for {@link org.eclipse.ecf.discovery.ServiceInfo#getPriority()}. */ public void testGetPriority() { assertTrue(serviceInfo.getPriority() == priority); } /** * Test method for {@link org.eclipse.ecf.discovery.ServiceInfo#getWeight()}. */ public void testGetWeight() { assertTrue(serviceInfo.getWeight() == weight); } /** * Test method for {@link org.eclipse.ecf.discovery.ServiceInfo#getServiceProperties()}. */ public void testGetServiceProperties() { final IServiceProperties sprops = serviceInfo.getServiceProperties(); assertEquals(sprops, serviceProperties); } /** * Test method for {@link java.lang.Object#hashCode()}. */ // public void testHashCode() { // fail("Not yet implemented. How should equality be defined anyway?"); // } /** * Test method for {@link java.lang.Object#equals(java.lang.Object)}. */ // public void testEquals() { // fail("Not yet implemented. How should equality be defined anyway?"); // } /** * Test method for {@link org.eclipse.ecf.discovery.ServiceInfo}. */ public void testServiceInfo() { IServiceInfo si = null; try { si = getServiceInfo(serviceInfo); } catch (final SecurityException e) { fail(); } assertTrue(serviceInfoComparator.compare(si, serviceInfo) == 0); } protected IServiceInfo getServiceInfo(IServiceInfo aServiceInfo) { return serviceInfo; } }