package org.jacorb.test.orb.factory;
import java.net.InetAddress;
import java.net.Socket;
import javax.net.ssl.SSLSocket;
import org.easymock.MockControl;
import org.jacorb.config.Configurable;
import org.jacorb.config.Configuration;
import org.jacorb.orb.factory.FixedAddressSocketFactory;
import org.jacorb.orb.factory.SocketFactory;
import org.jacorb.test.harness.TestUtils;
import org.junit.Test;
/**
* @author Alphonse Bendt
*/
public class FixedAddressSocketFactoryTest extends AbstractSocketFactoryTestCase
{
@Override
protected SocketFactory newObjectUnderTest()
{
return new FixedAddressSocketFactory();
}
@Test
public void testSetLocalhost() throws Exception
{
Socket socket = objectUnderTest.createSocket(hostname, serverPort);
checkSocketIsConnected(socket);
if ( ! (socket instanceof SSLSocket) && ! socket.isClosed ())
{
socket.shutdownOutput ();
}
socket.close ();
}
@Test
public void testSetLocalhost2() throws Exception
{
Socket socket = objectUnderTest.createSocket(hostname, serverPort, 1000);
checkSocketIsConnected(socket);
if ( ! (socket instanceof SSLSocket) && ! socket.isClosed ())
{
socket.shutdownOutput ();
}
socket.close ();
}
@Test
public void testSetHostname() throws Exception
{
Socket socket = objectUnderTest.createSocket(hostname, serverPort);
checkSocketIsConnected(socket);
if ( ! (socket instanceof SSLSocket) && ! socket.isClosed ())
{
socket.shutdownOutput ();
}
socket.close ();
}
@Test
public void testSetHostname2() throws Exception
{
Socket socket = objectUnderTest.createSocket(hostname, serverPort, 1000);
checkSocketIsConnected(socket);
if ( ! (socket instanceof SSLSocket) && ! socket.isClosed ())
{
socket.shutdownOutput ();
}
socket.close ();
}
@Override
protected void configureObjectUnderTest(String name, Configurable configurable) throws Exception
{
MockControl configControl = MockControl
.createControl(Configuration.class);
Configuration configMock = (Configuration) configControl.getMock();
configControl.expectAndReturn(configMock.getLogger("org.jacorb.orb.socketfactory"), TestUtils.getLogger());
if (name.startsWith("testSetLocalhost"))
{
configControl.expectAndReturn(configMock.getAttribute("OAIAddr", ""), "localhost");
}
else if (name.startsWith("testSetHostname"))
{
configControl.expectAndReturn(configMock.getAttribute("OAIAddr", ""), InetAddress.getLocalHost().getCanonicalHostName());
}
else
{
configControl.expectAndReturn(configMock.getAttribute("OAIAddr", ""), "");
}
configControl.replay();
configurable.configure(configMock);
configControl.verify();
}
}