/*
* JacORB - a free Java ORB
*
* Copyright (C) 1999-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.
*
*/
package org.jacorb.test.orb.rmi;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import javax.rmi.PortableRemoteObject;
import javax.rmi.CORBA.Util;
import org.jacorb.orb.rmi.PortableRemoteObjectDelegateImpl;
import org.junit.Before;
import org.junit.Test;
import org.omg.CORBA.ORB;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAHelper;
import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
public class PortableRemoteObjectDelegateImplTest
{
private static ORB orb;
private static Exception initException;
static
{
orb = ORB.init(new String[0], null);
System.setProperty("javax.rmi.CORBA.PortableRemoteObjectClass", PortableRemoteObjectDelegateImpl.class.getName());
PortableRemoteObjectDelegateImpl.setORB(orb);
try
{
POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
poa.the_POAManager().activate();
}
catch (InvalidName e)
{
initException = e;
}
catch (AdapterInactive e)
{
initException = e;
}
}
@Before
public void setUp() throws Exception
{
assertNull(initException);
}
@Test
public void testExport() throws Exception
{
RMITestImpl servant = new RMITestImpl();
assertNotNull(Util.getTie(servant));
}
@Test
public void testUnExport() throws Exception
{
RMITestImpl servant = new RMITestImpl();
assertNotNull(Util.getTie(servant));
PortableRemoteObject.unexportObject(servant);
assertNull(Util.getTie(servant));
}
@Test
public void testToStub() throws Exception
{
RMITestImpl servant = new RMITestImpl();
RMITestInterface remote = (RMITestInterface) PortableRemoteObject.toStub(servant);
String string = remote.testString("hello");
assertEquals("hello (echoed back)", string);
}
}