package org.jacorb.test.bugs.bug1012; import java.util.Properties; import java.util.HashMap; import java.util.concurrent.atomic.AtomicBoolean; import org.jacorb.test.harness.ClientServerSetup; import org.jacorb.test.harness.ClientServerTestCase; import org.jacorb.test.harness.IMRExcludedClientServerCategory; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; @Category(IMRExcludedClientServerCategory.class) public class Bug1012Test extends ClientServerTestCase { enum TestCase { WorkJustFine, ExtraCall, DequePop; } static TestCase tcase; static HashMap <TestCase, int[]> expected; static Door server; static int numberOfCallsToServer; static int numberOfItsMeCalls; static int numberOfCanIComeInCalls; static int comeIn = 0; static int itsMe = 0; static AtomicBoolean introduce = new AtomicBoolean(false); @BeforeClass public static void beforeClassSetup() throws Exception { expected = new HashMap<TestCase, int[]>(); expected.put(TestCase.WorkJustFine, new int[]{3,2,0}); expected.put(TestCase.ExtraCall, new int[]{4,2,2}); expected.put(TestCase.DequePop, new int[]{5,2,0}); Properties props = new Properties(); props.setProperty("org.omg.PortableInterceptor.ORBInitializerClass." + "ORBInit", DoorInitializer.class.getName()); setup = new ClientServerSetup("org.jacorb.test.bugs.bug1012.DoorImpl", props, props); } @Before public void beforeSetup() throws Exception { server = DoorHelper.narrow(setup.getServerObject()); numberOfCallsToServer = 0; numberOfItsMeCalls = 0; numberOfCanIComeInCalls = 0; comeIn = 0; itsMe = 0; introduce.set(false); } @Test public void testWorkJustFine() { tcase = TestCase.WorkJustFine; doTest(); } @Test public void testDequePop() { tcase = TestCase.DequePop; doTest(); } @Test public void testExtraCall() { tcase = TestCase.ExtraCall; doTest(); } public void doTest () { server.canIComeIn(); int[] results = new int [] {numberOfCallsToServer,numberOfCanIComeInCalls,numberOfItsMeCalls}; Assert.assertArrayEquals(expected.get(tcase),results); } }