You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Tom Jordahl <to...@macromedia.com> on 2002/10/03 17:27:31 UTC

Test case write in WSDL2Java change

By the way, the diffs below include a change to the WSDL2Java test case writer that prevent the emitted test method from catching *all* exceptions.  It will just catch the exceptions defined to be throw in the operation.

The test itself is declared to throw Exception, which will then allow any unexpected exceptions to bubble up to JUnit, which I think is a good thing.

This is something that Glen has been complaining about for something like forever. :-)

This is only on the interop4 branch, which is expected to join the mainline sometime after next week.

--
Tom Jordahl
Macromedia Server Development



-----Original Message-----
From: tomj@apache.org [mailto:tomj@apache.org]
Sent: Thursday, October 03, 2002 11:01 AM
To: xml-axis-cvs@apache.org
Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava
JavaTestCaseWriter.java JavaStubWriter.java JavaFaultWriter.java
JavaDefinitionWriter.java


tomj        2002/10/03 08:00:55

  Modified:    java/src/org/apache/axis/i18n Tag: interop4
                        resource.properties
               java/src/org/apache/axis/wsdl/toJava Tag: interop4
                        JavaTestCaseWriter.java JavaStubWriter.java
                        JavaFaultWriter.java JavaDefinitionWriter.java
  Log:
  Add more changes for the correct processing of fault data.
  
  Some error checking and defensive coding changes.
  
  Get a (more) correct namespace in the writeDetails() emitted function.
  
  We have a problem in that the namespace of a fault can change per
  operation depending on the WSDL, and the function we emit to write
  the details element needs to know that namespace.  Probably need to
  get the OperationDesc from the Serailization/Message context and have
  deploy writer put the fault info in to the WSDD.
  
  Still don't emit writeDetails() element for complex type faults, but simple
  types are working.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.9.2.1   +2 -0      xml-axis/java/src/org/apache/axis/i18n/resource.properties
  
  Index: resource.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v
  retrieving revision 1.9
  retrieving revision 1.9.2.1
  diff -u -r1.9 -r1.9.2.1
  --- resource.properties	26 Sep 2002 20:32:55 -0000	1.9
  +++ resource.properties	3 Oct 2002 15:00:54 -0000	1.9.2.1
  @@ -1031,3 +1031,5 @@
   unmatchedOp=Binding operation has no corresponding portType operation:  name = {0}, input name = {1}, output name = {2}
   noOperationForQName=Couldn't find an appropriate operation for XML QName {0}
   noParmDesc=operation description is missing parameter description!
  +
  +noBindingFault=ERROR: Unable to find fault "{0}" in operation "{1}", in binding {2}.
  \ No newline at end of file
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.44.2.2  +20 -7     xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTestCaseWriter.java
  
  Index: JavaTestCaseWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTestCaseWriter.java,v
  retrieving revision 1.44.2.1
  retrieving revision 1.44.2.2
  diff -u -r1.44.2.1 -r1.44.2.2
  --- JavaTestCaseWriter.java	1 Oct 2002 20:38:51 -0000	1.44.2.1
  +++ JavaTestCaseWriter.java	3 Oct 2002 15:00:55 -0000	1.44.2.2
  @@ -180,15 +180,23 @@
   
               String javaOpName = Utils.xmlNameToJavaClass(op.getName());
               String testMethodName = "test" + counter++ + portName + javaOpName;
  -            pw.println("    public void " + testMethodName + "() {");
  +            pw.println("    public void " + testMethodName + "() throws Exception {");
   
               String bindingType = (String) bEntry.getDynamicVar(JavaBindingWriter.INTERFACE_NAME);
               writeBindingAssignment(pw, bindingType, portName);
   
  -            pw.println("        try {");
  +            
  +            pw.println("        // Test operation");
  +            String indent = "";
  +            Map faultMap = op.getFaults();
  +            if (faultMap != null && faultMap.size() > 0) {
  +                // we are going to catch fault Exceptions
  +                pw.println("        try {");
  +                indent = "    ";
  +            }
               if (params.returnParam != null) {
                   TypeEntry returnType = params.returnParam.getType();
  -                pw.print("            ");
  +                pw.print("        " + indent);
                   pw.print(Utils.getParameterTypeName(params.returnParam));
                   pw.print(" value = ");
   
  @@ -204,7 +212,7 @@
                   }
               }
   
  -            pw.print("            ");
  +            pw.print  ("        " + indent);
   
               if (params.returnParam != null) {
                   pw.print("value = ");
  @@ -246,9 +254,9 @@
   
               pw.println(");");
   
  -            pw.println("        }");
  -
  -            Map faultMap = op.getFaults();
  +            if (faultMap != null && faultMap.size() > 0) {
  +                pw.println("        }");
  +            }
   
               if (faultMap != null) {
                   Iterator i = faultMap.values().iterator();
  @@ -265,6 +273,10 @@
                       pw.println("        }");
                   }
               }
  +            
  +            pw.println("        " + indent + "// TBD - validate results");
  +
  +            /*
               pw.println("        catch (java.rmi.RemoteException re) {");
               pw.print("            ");
               pw.println("throw new junit.framework.AssertionFailedError(\"Remote Exception caught: \" + re);");
  @@ -274,6 +286,7 @@
                   pw.println("            // Unsigned constructors can throw - ignore");
                   pw.println("        }");
               }
  +            */
               pw.println("    }");
               pw.println();
           }
  
  
  
  1.98.2.3  +13 -2     xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java