public void send_reply(ServerRequestInfo ri) { try { // // Test: get operation name // String op = ri.operation(); // // If "deactivate" then we're done // if (op.equals("deactivate")) return; boolean oneway = op.equals("noargs_oneway"); // // Test: Arguments should be available // testArgs(ri, true); // TODO: test operation_context // // Test: exceptions // try { TypeCode[] exceptions = ri.exceptions(); if (op.equals("userexception")) { TEST(exceptions.length == 1); TEST(exceptions[0].equal(userHelper.type())); } else { TEST(exceptions.length == 0); } } catch (NO_RESOURCES ex) { // Expected (if servant is DSI) } // // Test: response expected and oneway should be equivalent // TEST((oneway && !ri.response_expected()) || (!oneway && ri.response_expected())); // TODO: test sync scope // // Test: reply status is available // TEST(ri.reply_status() == SUCCESSFUL.value); // // Test: forward reference is not available // try { org.omg.CORBA.Object ior = ri.forward_reference(); TEST(false); } catch (BAD_INV_ORDER ex) { // Expected } // // Test: get_request_service_context // Test: get_reply_service_context // Test: add_reply_service_context // testServiceContext(op, ri, true); // // Test: sending exception is not available // try { Any any = ri.sending_exception(); TEST(false); } catch (BAD_INV_ORDER ex) { // Expected } // // Test: object id is correct // byte[] oid = ri.object_id(); TEST( (oid.length == 4 && (new String(oid)).equals("test")) || (oid.length == 7 && (new String(oid)).equals("testDSI"))); // // Test: adapter id is correct (this is a tough one to test) // byte[] adapterId = ri.adapter_id(); TEST(adapterId.length != 0); // // Test: target_most_derived_interface raises BAD_INV_ORDER // try { String mdi = ri.target_most_derived_interface(); TEST(false); } catch (BAD_INV_ORDER ex) { // Expected } // // Test: server id is correct // String serverId = ri.server_id(); TEST(serverId.equals("")); // // Test: orb id is correct // String orbId = ri.orb_id(); TEST(orbId.equals("myORB")); // // Test: adapter name is correct // String[] adapterName = ri.adapter_name(); TEST(adapterName.length == 1 && adapterName[0].equals("persistent")); // // Test: target_is_a raises BAD_INV_ORDER // try { ri.target_is_a("IDL:TestInterface:1.0"); TEST(false); } catch (BAD_INV_ORDER ex) { // Expected } // // Test: get_server_policy // Policy policy = ri.get_server_policy(MY_SERVER_POLICY_ID.value); MyServerPolicy myServerPolicy = MyServerPolicyHelper.narrow(policy); TEST(myServerPolicy != null); TEST(myServerPolicy.value() == 10); try { policy = ri.get_server_policy(1013); TEST(false); } catch (INV_POLICY ex) { // Expected } // // Test: get_slot // if (op.equals("test_service_context")) { int val; Any slotData = null; try { slotData = ri.get_slot(0); } catch (InvalidSlot ex) { TEST(false); } val = slotData.extract_long(); TEST(val == 20); } } catch (test.common.TestException ex) { ex.printStackTrace(); throw ex; } }