package org.jacorb.test.miop; import static org.junit.Assert.fail; import java.util.Properties; import org.jacorb.test.harness.ClientServerSetup; import org.jacorb.test.harness.ClientServerTestCase; import org.jacorb.test.harness.TestUtils; import org.junit.Assume; import org.junit.BeforeClass; import org.junit.Test; import org.omg.CORBA.INV_OBJREF; import org.omg.CORBA.ORB; public class MIOPTest extends ClientServerTestCase { private String miopURL = "corbaloc:miop:1.0@1.0-TestDomain-1/224.1.239.2:1234"; private GreetingService server; @BeforeClass public static void beforeClassSetUp() throws Exception { Assume.assumeFalse(TestUtils.isSSLEnabled); Properties props = new Properties (); props.setProperty ("jacorb.transport.factories", "org.jacorb.orb.iiop.IIOPFactories,org.jacorb.orb.miop.MIOPFactories"); props.setProperty ("jacorb.transport.client.selector", "org.jacorb.orb.miop.MIOPProfileSelector"); setup = new ClientServerSetup(MIOPTestServer.class.getName(), GreetingImpl.class.getName(), props, props); } @Test public void testMIOP() throws InterruptedException { ORB orb = setup.getClientOrb(); String ior = setup.getServerIOR(); org.omg.CORBA.Object ref = orb.string_to_object( ior ); // Use an unchecked narrow so it doesn't do an is_a call remotely. server = GreetingServiceHelper.unchecked_narrow(orb.string_to_object(miopURL)); String s = "Oneway call"; server.greeting_oneway(s); //Wait for the server receives the first request. Thread.sleep(1000); // A normal narrow should do a remote call. This will need the group IIOP profile which // may not have been transmitted so we do this part last. try { server = GreetingServiceHelper.narrow(ref); String response = server.greeting_check(); if(!response.equals(s)) { fail("Wrong response: expected \""+s+"\" received \""+response+"\""); } } catch (INV_OBJREF e) { fail("Unable to narrow due to no Group IIOP Profile"); } } }