/** * Test the exceptions raised while accessing the member Name/Value DynAny pairs in a DynStruct * object. */ public void testAccessStructPairsEx() { String msg; org.omg.CORBA.Any any = null; org.omg.CORBA.TypeCode tc = null; org.omg.DynamicAny.DynStruct dynAny = null; org.omg.DynamicAny.NameValuePair[] pairs = null; tc = orb.create_exception_tc(ID, NAME, MEMBERS); dynAny = createDynAnyFromTypeCode(tc); // test inserting a sequence with the wrong number of members pairs = new NameValuePair[1]; any = orb.create_any(); any.insert_char('a'); pairs[0] = new NameValuePair("name", any); msg = "Failed to raise an InvalidValue exception when passing in a "; msg += "name/value sequence containing too many members"; try { dynAny.set_members(pairs); fail(msg); } catch (org.omg.DynamicAny.DynAnyPackage.InvalidValue ex) { // success } catch (org.omg.DynamicAny.DynAnyPackage.TypeMismatch ex) { fail(msg + ": " + ex); } }
/** Test accessing the member Name/Value pairs in a DynStruct object. */ public void testAccessStructNameValuePairs() { String msg; org.omg.CORBA.Any any = null; EmptyException type = null; org.omg.DynamicAny.DynStruct dynAny = null; org.omg.DynamicAny.NameValuePair[] pairs = null; type = new EmptyException(); any = orb.create_any(); EmptyExceptionHelper.insert(any, type); dynAny = createDynAnyFromAny(any); // test extracting the name/value pairs as Anys pairs = dynAny.get_members(); msg = "Returned number of members from DynStruct::get_members operation "; msg += "is non-zero"; assertEquals(msg, 0, pairs.length); pairs = new NameValuePair[0]; try { dynAny.set_members(pairs); } catch (Throwable ex) { msg = "Failed to set DynStruct members using DynStruct::set_members "; msg += "operation"; fail(msg + ": " + ex); } }