package org.jacorb.test.bugs.bug964;
import static org.junit.Assert.assertTrue;
import java.util.Properties;
import org.jacorb.test.bugs.bugjac670.GSLoadBalancer;
import org.jacorb.test.bugs.bugjac670.GSLoadBalancerHelper;
import org.jacorb.test.harness.ClientServerSetup;
import org.jacorb.test.harness.FixedPortClientServerTestCase;
import org.jacorb.test.harness.TestUtils;
import org.junit.Assume;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.omg.CORBA.ORB;
import org.omg.PortableServer.POA;
public class Bug964Test extends FixedPortClientServerTestCase
{
private GSLoadBalancer server;
private static String remotePort = Integer.toString(getNextAvailablePort());
private static String localPort = Integer.toString(getNextAvailablePort());
private final static String remoteCorbaloc = "corbaloc::localhost:" + remotePort + "/GSLBService";
private final static String localCorbaloc = "corbaloc::localhost:" + localPort + "/GSLBService";
@Before
public void setUp() throws Exception
{
POA poa = setup.getClientRootPOA();
ORB orb = setup.getClientOrb();
GSLoadBalancerImpl servant = new GSLoadBalancerImpl();
byte[] id = poa.activate_object(servant);
org.omg.CORBA.Object obj = poa.id_to_reference( id ) ;
String IOR = orb.object_to_string(obj);
((org.jacorb.orb.ORB)orb).addObjectKey("GSLBService", IOR);
poa.the_POAManager().activate();
GSLoadBalancerImpl.ID = "LOCAL";
server = GSLoadBalancerHelper.narrow(orb.string_to_object(localCorbaloc));
}
@BeforeClass
public static void beforeClassSetUp() throws Exception
{
Assume.assumeFalse(TestUtils.isSSLEnabled);
Properties clientprops = new java.util.Properties();
clientprops.setProperty( "OAPort", localPort );
clientprops.setProperty("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
clientprops.setProperty("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
Properties serverprops = new java.util.Properties();
serverprops.setProperty( "OAPort", remotePort );
serverprops.setProperty("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
serverprops.setProperty("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
setup = new ClientServerSetup
(
"org.jacorb.test.bugs.bug964.GSLoadBalancerServer",
"GSLoadBalancerImpl",
clientprops,
serverprops
);
}
@Test
public void corbaloccall1()
throws Exception
{
org.omg.CORBA.Object o = setup.getClientOrb().string_to_object(remoteCorbaloc);
GSLoadBalancer sr = GSLoadBalancerHelper.narrow(o);
assertTrue (sr.greeting("1").indexOf("LOCAL") == -1);
assertTrue (server.greeting("2").indexOf("LOCAL") != -1);
}
}