summaryrefslogtreecommitdiff
path: root/TAO/tests/Bug_1636_Regression/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Bug_1636_Regression/client.cpp')
-rw-r--r--TAO/tests/Bug_1636_Regression/client.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/TAO/tests/Bug_1636_Regression/client.cpp b/TAO/tests/Bug_1636_Regression/client.cpp
new file mode 100644
index 00000000000..d731b3571f5
--- /dev/null
+++ b/TAO/tests/Bug_1636_Regression/client.cpp
@@ -0,0 +1,70 @@
+//
+// $Id$
+//
+#include "tao/DynamicInterface/Request.h"
+#include "tao/DynamicAny/DynAnyFactory.h"
+#include "testC.h"
+
+int main (int argc, char* argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv,
+ "" /* the ORB name, it can be anything! */);
+
+ ACE_DEBUG ((LM_DEBUG,"Get reference to the DynAny Factory\n"));
+ CORBA::Object_var obj =
+ orb->resolve_initial_references ("DynAnyFactory");
+
+ DynamicAny::DynAnyFactory_var daf =
+ DynamicAny::DynAnyFactory::_narrow (obj.in());
+
+ UnionIecs::S_i_num s_num;
+ s_num.type_num = UnionIecs::E_type_num_called_party_number;
+ s_num.nature = 5;
+
+ UnionIecs::S_num num1;
+ num1.num(s_num);
+ CORBA::Any MyAny1;
+ MyAny1 <<= num1;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "calling from_any () and to_any () with non-empty union...\n"));
+ DynamicAny::DynAny_var dynany1 =
+ daf->create_dyn_any_from_type_code (UnionIecs::_tc_S_num);
+
+ dynany1->from_any(MyAny1);
+ CORBA::Any_var arg1 =
+ dynany1->to_any ();
+
+ ACE_DEBUG ((LM_DEBUG, "...done\n"));
+
+ UnionIecs::S_num num2;
+ num2._default();
+ CORBA::Any MyAny2;
+ MyAny2 <<= num2;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "calling from_any () and to_any () with empty union...\n" ));
+ DynamicAny::DynAny_var dynany2 =
+ daf-> create_dyn_any_from_type_code (UnionIecs::_tc_S_num);
+
+ dynany2->from_any (MyAny2);
+
+ CORBA::Any_var arg2 =
+ dynany2->to_any();
+
+ ACE_DEBUG ((LM_DEBUG,"...done.\nTest passed.\n"));
+
+ // Finally destroy the ORB
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception - test failed:\n");
+ return 1;
+ }
+
+ return 0;
+}