summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/objects/AllTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Ice/objects/AllTests.cpp')
-rw-r--r--cpp/test/Ice/objects/AllTests.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/cpp/test/Ice/objects/AllTests.cpp b/cpp/test/Ice/objects/AllTests.cpp
index 04643d44427..829a0c35602 100644
--- a/cpp/test/Ice/objects/AllTests.cpp
+++ b/cpp/test/Ice/objects/AllTests.cpp
@@ -237,5 +237,39 @@ allTests(const Ice::CommunicatorPtr& communicator)
testUOE(communicator);
cout << "ok" << endl;
+ try
+ {
+ string ref = "test:default -p 12010";
+ TestIntfPrx p = TestIntfPrx::checkedCast(communicator->stringToProxy(ref));
+
+ cout << "testing UnexpectedObjectException... " << flush;
+ testUOE(communicator);
+ cout << "ok" << endl;
+
+ cout << "testing Object factory registration... " << flush;
+ {
+ BasePtr base = p->opDerived();
+ test(base);
+ test(base->ice_id() == "::Test::Derived");
+ }
+ cout << "ok" << endl;
+
+ cout << "testing Exception factory registration... " << flush;
+ {
+ try
+ {
+ p->throwDerived();
+ }
+ catch(const BaseEx& ex)
+ {
+ test(ex.ice_name() == "Test::DerivedEx");
+ }
+ }
+ cout << "ok" << endl;
+ }
+ catch(const Ice::ObjectNotExistException&)
+ {
+ }
+
return initial;
}