/** Test initializing a DynAny object from an Any value. */
  public void testInitDynAnyFromAny() {
    String msg;
    EmptyException type;
    org.omg.CORBA.Any any = null;
    org.omg.CORBA.TypeCode tc = null;
    org.omg.DynamicAny.DynStruct dynAny = null;
    org.omg.DynamicAny.DynStruct dynAny2 = null;

    tc = EmptyExceptionHelper.type();
    dynAny = createDynAnyFromTypeCode(tc);

    type = new EmptyException();
    any = orb.create_any();
    EmptyExceptionHelper.insert(any, type);
    dynAny2 = createDynAnyFromAny(any);

    msg = "Failed to initialize a DynAny object from an Any object ";
    msg += "using the DynAny::from_any operation";
    try {
      dynAny.from_any(any);
    } catch (Throwable ex) {
      fail(msg + ": " + ex);
    }
    assertTrue(msg, dynAny.equal(dynAny2));
  }
  /** Test accessing the member Name/Value DynAny pairs in a DynStruct object. */
  public void testAccessStructDynAnyPairs() {
    String msg;
    org.omg.CORBA.Any any = null;
    EmptyException type = null;
    org.omg.DynamicAny.DynStruct dynAny = null;
    org.omg.DynamicAny.NameDynAnyPair[] 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_as_dyn_any();
    msg = "Returned number of members from DynStruct::get_members operation ";
    msg += "is non-zero";
    assertEquals(msg, 0, pairs.length);

    pairs = new NameDynAnyPair[0];
    try {
      dynAny.set_members_as_dyn_any(pairs);
    } catch (Throwable ex) {
      msg = "Failed to set DynStruct members using DynStruct::set_members ";
      msg += "operation";
      fail(msg + ": " + ex);
    }
  }
  /** Tests creating a DynAny object from an Any object using the DynAnyFactory object. */
  public void testFactoryCreateFromAny() {
    EmptyException type = null;
    org.omg.CORBA.Any any = null;

    type = new EmptyException();
    any = orb.create_any();
    EmptyExceptionHelper.insert(any, type);

    createDynAnyFromAny(any);
  }
  /** Test comparing DynAny values. */
  public void testCompareDynAny() {
    String msg;
    EmptyException type;
    org.omg.CORBA.Any any = null;
    org.omg.DynamicAny.DynStruct dynAny = null;
    org.omg.DynamicAny.DynStruct dynAny2 = null;

    type = new EmptyException();
    any = orb.create_any();
    EmptyExceptionHelper.insert(any, type);
    dynAny = createDynAnyFromAny(any);
    dynAny2 = createDynAnyFromAny(any);

    msg = "Comparing two equal DynAny values using DynAny::equal failed";
    assertTrue(msg, dynAny.equal(dynAny2));
  }
  /** Test accessing the names and types of members in a DynStruct object. */
  public void testAccessStructMembers() {
    String msg;
    String memberName = null;
    TCKind memberKind = null;
    org.omg.CORBA.Any any = null;
    EmptyException exception = null;
    org.omg.DynamicAny.DynStruct dynAny = null;

    exception = new EmptyException();
    any = orb.create_any();
    EmptyExceptionHelper.insert(any, exception);
    dynAny = createDynAnyFromAny(any);

    // test getting the name of the current member
    msg = "Failed to throw a TypeMismatch exception when calling ";
    msg += "DynStruct::current_member_name operation on an empty exception";
    try {
      memberName = dynAny.current_member_name();

      fail(msg);
    } catch (AssertionFailedError ex) {
      throw ex;
    } catch (Throwable ex) {
      if (!(ex instanceof org.omg.DynamicAny.DynAnyPackage.TypeMismatch)) {
        fail(msg + ": " + ex);
      }
    }

    // test getting the kind of the current member
    msg = "Failed to throw a TypeMismatch exception when calling ";
    msg += "DynStruct::current_member_kind operation on an empty exception";
    try {
      memberKind = dynAny.current_member_kind();

      fail(msg);
    } catch (AssertionFailedError ex) {
      throw ex;
    } catch (Throwable ex) {
      if (!(ex instanceof org.omg.DynamicAny.DynAnyPackage.TypeMismatch)) {
        fail(msg + ": " + ex);
      }
    }
  }
  /** Test destroying a DynAny object. */
  public void testDestroyDynAny() {
    String msg;
    EmptyException type;
    org.omg.CORBA.Any any = null;
    org.omg.DynamicAny.DynStruct dynAny = null;

    type = new EmptyException();
    any = orb.create_any();
    EmptyExceptionHelper.insert(any, type);
    dynAny = createDynAnyFromAny(any);
    dynAny.destroy();

    try {
      dynAny.type();

      msg = "Failed to destroy DynAny using DynAny::destroy operation - ";
      msg += "calling DynAny::type operation on a destroyed DynAny object ";
      msg += "did not raise OBJECT_NOT_EXIST exception";
      fail(msg);
    } catch (org.omg.CORBA.OBJECT_NOT_EXIST ex) {
      // success
    }

    msg = "Failed to destroy DynAny using DynAny::destroy operation - ";
    msg += "calling DynAny::current_component operation on a destroyed ";
    msg += "DynAny object did not raise OBJECT_NOT_EXIST exception";
    try {
      dynAny.current_component();

      fail(msg);
    } catch (org.omg.CORBA.OBJECT_NOT_EXIST ex) {
      // success
    } catch (org.omg.DynamicAny.DynAnyPackage.TypeMismatch ex) {
      fail(msg + ": " + ex);
    }
  }