package org.jacorb.test.poa;
/*
* JacORB - a free Java ORB
*
* Copyright (C) 1997-2014 Gerald Brose / The JacORB Team.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
import static org.junit.Assert.assertTrue;
import java.util.Properties;
import org.jacorb.test.BasicServer;
import org.jacorb.test.BasicServerHelper;
import org.jacorb.test.harness.ClientServerSetup;
import org.jacorb.test.harness.ClientServerTestCase;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* <code>BiDirDelegateTest</code> is a test for JAC5; BiDir connections get
* BAD_INV_ORDER/Delegate not set.
*
* @author <a href="mailto:rnc@prismtechnologies.com"></a>
* @version 1.0
*/
public class BiDirDelegateTest extends ClientServerTestCase
{
private BasicServer server;
/**
* <code>ping</code> is used to denote whether the ping thread
* successfully completed.
*/
private boolean ping = false;
@Before
public void setUp() throws Exception
{
server = BasicServerHelper.narrow( setup.getServerObject() );
}
@BeforeClass
public static void beforeClassSetUp() throws Exception
{
Properties client_props = new Properties();
Properties server_props = new Properties();
client_props.setProperty ("org.omg.PortableInterceptor.ORBInitializerClass.bidir_init", "org.jacorb.orb.giop.BiDirConnectionInitializer");
server_props.setProperty ("org.omg.PortableInterceptor.ORBInitializerClass.bidir_init", "org.jacorb.orb.giop.BiDirConnectionInitializer");
// Note that I have activated BiDir connections through the above
// property and am using my own ClientServerSetup class.
setup = new ClientServerSetup("org.jacorb.test.poa.BiDirDelegateTestServerRunner",
"org.jacorb.test.orb.BasicServerImpl",
client_props,
server_props);
}
/**
* <code>test_ping</code> calls the ping method on BasicServer.
*
* We have to use a thread as otherwise if the test fails the harness will
* hang. This allows the test to detect a broken server.
*/
@Test
public void test_ping()
{
Thread thread = new Thread("BiDirDelegateTest Ping Thread")
{
public void run()
{
server.ping();
ping = true;
}
};
thread.start();
try
{
thread.join(3000);
}
catch (InterruptedException e) {}
assertTrue(ping);
}
}