THRIFT-1588 Java Generated Exceptions don't follow inheritance pattern as other Languages
authorRoger Meier <roger@apache.org>
Wed, 2 May 2012 22:49:55 +0000 (22:49 +0000)
committerRoger Meier <roger@apache.org>
Wed, 2 May 2012 22:49:55 +0000 (22:49 +0000)
Patch: Nathaniel Cook

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1333239 13f79535-47bb-0310-9956-ffa450edef68

lib/java/test/org/apache/thrift/test/TestClient.java
test/cpp/src/TestClient.cpp

index aee3bbf..85dbecd 100644 (file)
@@ -372,7 +372,68 @@ public class TestClient {
         }
         System.out.print("}\n");
 
-        // Test oneway
+        
+        /**
+         * EXECPTION TEST
+         */
+        try {
+          System.out.print("testClient.testException(\"Xception\") =>");
+          testClient.testException("Xception");
+          System.out.print("  void\nFAILURE\n");
+        } catch(Xception e) {
+          System.out.print("  {%u, \"%s\"}\n", e.errorCode, e.message.c_str());
+        }
+        
+        try {
+          System.out.print("testClient.testException(\"Xception\") =>");
+          testClient.testException("Xception");
+          System.out.print("  void\nFAILURE\n");
+        } catch(TException e) {
+          System.out.print("  {%u, \"%s\"}\n", e.errorCode, e.message.c_str());
+        }
+        
+        try {
+          System.out.print("testClient.testException(\"success\") =>");
+          testClient.testException("success");
+          System.out.print("  void\n");
+        }catch(Exception e) {
+          System.out.print("  exception\nFAILURE\n");
+        }
+        
+        
+        /**
+         * MULTI EXCEPTION TEST
+         */
+        
+        try {
+          System.out.print("testClient.testMultiException(\"Xception\", \"test 1\") =>");
+          testClient.testMultiException("Xception", "test 1");
+          System.out.print("  result\nFAILURE\n");
+        } catch(Xception e) {
+          System.out.print("  {%u, \"%s\"}\n", e.errorCode, e.message.c_str());
+        }
+        
+        try {
+          System.out.print("testClient.testMultiException(\"Xception2\", \"test 2\") =>");
+          testClient.testMultiException("Xception2", "test 2");
+          System.out.print("  result\nFAILURE\n");
+        } catch(Xception2 e) {
+          System.out.print("  {%u, {\"%s\"}}\n", e.errorCode, e.struct_thing.string_thing.c_str());
+        }
+        
+        try {
+          System.out.print("testClient.testMultiException(\"success\", \"test 3\") =>");
+          testClient.testMultiException("success", "test 3");
+          System.out.print("  {{\"%s\"}}\n", result.string_thing.c_str());
+        } catch(Exception e) {
+          System.out.print("  exception\nFAILURE\n");
+        }
+
+
+        
+        /**
+         * ONEWAY TEST
+         */
         System.out.print("testOneway(3)...");
         long startOneway = System.nanoTime();
         testClient.testOneway(3);
index d8618d5..f461a87 100755 (executable)
@@ -529,6 +529,15 @@ int main(int argc, char** argv) {
       printf("  {%u, \"%s\"}\n", e.errorCode, e.message.c_str());
     }
 
+    try {
+        printf("testClient.testException(\"Xception\") =>");
+        testClient.testException("Xception");
+        printf("  void\nFAILURE\n");
+
+      } catch(TException& e) {
+        printf("  Caught TException\n");
+      }
+
     try {
       printf("testClient.testException(\"success\") =>");
       testClient.testException("success");