package org.limewire.mojito.routing.impl; import java.net.InetSocketAddress; import java.net.SocketAddress; import junit.framework.TestSuite; import org.limewire.mojito.MojitoTestCase; import org.limewire.mojito.routing.ContactFactory; import org.limewire.mojito.routing.Vendor; import org.limewire.mojito.routing.Version; public class LocalContactTest extends MojitoTestCase { public LocalContactTest(String name) { super(name); } public static TestSuite suite() { return buildTestSuite(LocalContactTest.class); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } public void testSetExternalAddress() { LocalContact local = (LocalContact)ContactFactory .createLocalContact(Vendor.UNKNOWN, Version.ZERO, false); // Initial State assertEquals(new InetSocketAddress("localhost", 0), local.getContactAddress()); // Set External Port local.setExternalPort(1024); assertEquals(new InetSocketAddress("localhost", 1024), local.getContactAddress()); // Accept everything SocketAddress externalAddress1 = new InetSocketAddress("limewire.org", 2048); local.setExternalAddress(externalAddress1); assertEquals(new InetSocketAddress("limewire.org", 1024), local.getContactAddress()); // Two Nodes report different external addresses SocketAddress externalAddress2 = new InetSocketAddress("microsoft.com", 2048); local.setExternalAddress(externalAddress2); assertEquals(new InetSocketAddress("limewire.org", 1024), local.getContactAddress()); SocketAddress externalAddress3 = new InetSocketAddress("dell.com", 2048); local.setExternalAddress(externalAddress3); assertEquals(new InetSocketAddress("limewire.org", 1024), local.getContactAddress()); // We accept an address if the same address is reported by two Nodes in a row local.setExternalAddress(externalAddress3); assertEquals(new InetSocketAddress("dell.com", 1024), local.getContactAddress()); } }