package org.jacorb.test.orb.factory; import java.net.Socket; import javax.net.ssl.SSLSocket; import org.easymock.MockControl; import org.jacorb.config.Configuration; import org.jacorb.config.ConfigurationException; import org.jacorb.orb.factory.PortRangeSocketFactory; import org.jacorb.orb.factory.SocketFactory; import org.jacorb.test.harness.TestUtils; import org.junit.Test; public class PortRangeSocketFactoryTest extends AbstractSocketFactoryTestCase { private static final int MIN = 40000; private static final int MAX = 40010; @Override protected SocketFactory newObjectUnderTest() throws ConfigurationException { final PortRangeSocketFactory factory = new PortRangeSocketFactory(); MockControl configControl = MockControl.createControl(Configuration.class); Configuration configMock = (Configuration) configControl.getMock(); configControl.expectAndReturn(configMock.getLogger("org.jacorb.orb.socketfactory"), TestUtils.getLogger()); configControl.expectAndReturn(configMock.getAttributeAsInteger(PortRangeSocketFactory.MIN_PROP), MIN); configControl.expectAndReturn(configMock.getAttributeAsInteger(PortRangeSocketFactory.MAX_PROP), MAX); configControl.expectAndReturn(configMock.getAttribute("OAIAddr", ""), ""); configControl.replay(); factory.configure(configMock); return factory; } @Test public void testPortsAreCreatedInCorrectRange() throws Exception { Socket socket = objectUnderTest.createSocket(hostname, serverPort); assertTrue(socket.getLocalPort() >= MIN); assertTrue(socket.getLocalPort() <= MAX); if ( ! (socket instanceof SSLSocket) && ! socket.isClosed ()) { socket.shutdownOutput (); } socket.close (); } }