package org.jacorb.test.bugs.bugjac676;
import static org.junit.Assert.fail;
import org.jacorb.test.harness.ClientServerSetup;
import org.jacorb.test.harness.ClientServerTestCase;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.omg.CORBA.ORB;
public class BugJac676Test extends ClientServerTestCase
{
private TestBoundedString testObj = null;
@BeforeClass
public static void beforeClassSetUp() throws Exception
{
setup = new ClientServerSetup("org.jacorb.test.bugs.bugjac676.TestBoundedStringImpl" );
}
@Before
public void setUp() throws Exception
{
ORB orb = setup.getClientOrb();
String ior = setup.getServerIOR();
org.omg.CORBA.Object ref = orb.string_to_object( ior );
testObj = TestBoundedStringHelper.narrow( ref );
}
@Test
public void testBoundedString ()
{
try
{
// no exceptions expected when string length corresponds
// to the specified bounds
StructOne paramGood = new StructOne(
new String( "0123456789012345678" ),
new String( "some normal string" )
);
testObj.set_object( paramGood );
testObj.get_object();
// there are two exception are expected -
// one from read(...) another from write(...)
// methods
int exceptionsCount = 0;
StructOne paramBad = new StructOne(
new String( "012345678901234567890123456789012" ),
new String( "some normal string" )
);
try
{
testObj.set_object( paramBad );
}
catch( org.omg.CORBA.BAD_PARAM e )
{
// expected exception - test was successful
exceptionsCount++;
}
try
{
testObj.get_bad_object();
}
catch( org.omg.CORBA.BAD_PARAM e )
{
// expected exception - test was successful
exceptionsCount++;
}
if( exceptionsCount != 2)
{
fail ("JAC#676 - Expected org.omg.CORBA.BAD_PARAM exceptions haven't thrown");
}
}
catch (Exception e)
{
fail( "Unexpected exception: " + e);
}
}
}