butek       02/02/04 08:25:11

  Modified:    java/src/org/apache/axis/wsdl/toJava JavaTestCaseWriter.java
  Log:
  The generated test cases now have one operation per method.  The old one put
  all operations in a single method.  So if one operation failed, the test stopped.  
Now
  all operations are run and the report tells us how many fail.
  
  Revision  Changes    Path
  1.14      +41 -44    
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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JavaTestCaseWriter.java   1 Feb 2002 18:04:08 -0000       1.13
  +++ JavaTestCaseWriter.java   4 Feb 2002 16:25:11 -0000       1.14
  @@ -128,9 +128,12 @@
               }
   
               String portName = Utils.xmlNameToJavaClass(p.getName());
  +            PortType portType = binding.getPortType();
  +            PortTypeEntry ptEntry =
  +                    symbolTable.getPortTypeEntry(portType.getQName());
   
               writeComment(pw, p.getDocumentationElement());
  -            writeServiceTestCode(portName, binding, bEntry);
  +            writeServiceTestCode(portName, portType, ptEntry, binding, bEntry);
           }
           finish();
       } // writeFileBody
  @@ -142,47 +145,10 @@
           pw.close();
       } // finish
   
  -    public final void writeServiceTestCode(
  -            String portName, Binding binding, BindingEntry bEntry)
  -            throws IOException {
  -        PortType portType = binding.getPortType();
  -        PortTypeEntry ptEntry =
  -                symbolTable.getPortTypeEntry(portType.getQName());
  -
  -        // If there is not literal use, the interface name is the portType name.
  -        // Otherwise it is the binding name.
  -        String bindingType = bEntry.hasLiteral() ?
  -                bEntry.getName() : ptEntry.getName();
  -
  -        pw.println();
  -        pw.println("    public void test" + portName + "() {");
  -        pw.print("        ");
  -        pw.print(bindingType);
  -        pw.println(" binding;");
  -        pw.println("        try {");
  -        pw.print("            binding = new ");
  -        pw.print(this.className.substring(0, this.className.length() - 
"TestCase".length()));
  -        pw.print("().get");
  -        pw.print(portName);
  -        pw.println("();");
  -        pw.println("        }");
  -        pw.println("        catch (javax.xml.rpc.JAXRPCException jre) {");
  -        pw.print("            ");
  -        pw.println("throw new junit.framework.AssertionFailedError(\"JAX-RPC 
Exception caught: \" + jre);");
  -        pw.println("        }");
  -
  -        pw.println("        assertTrue(\"" +
  -                JavaUtils.getMessage("null00", "binding") +
  -                "\", binding != null);");
  -
  -        this.writePortTestCode(portType, bEntry);
  -
  -        pw.println("    }");
  -    } // writeServiceTestCode
  -
  -    private final void writePortTestCode(PortType port, BindingEntry bEntry) throws 
IOException {
  -        PortTypeEntry ptEntry = symbolTable.getPortTypeEntry(port.getQName());
  -        Iterator ops = port.getOperations().iterator();
  +    private final void writeServiceTestCode(
  +            String portName, PortType portType, PortTypeEntry ptEntry,
  +            Binding binding, BindingEntry bEntry) throws IOException {
  +        Iterator ops = portType.getOperations().iterator();
           while (ops.hasNext()) {
               Operation op = (Operation) ops.next();
               OperationType type = op.getStyle();
  @@ -196,6 +162,16 @@
                   continue;
               }
   
  +            String javaOpName = Utils.xmlNameToJavaClass(op.getName());
  +            String testMethodName = "test" + portName + javaOpName;
  +            pw.println("    public void " + testMethodName + "() {");
  +
  +            // If there is not literal use, the interface name is the portType name.
  +            // Otherwise it is the binding name.
  +            String bindingType = bEntry.hasLiteral() ?
  +                    bEntry.getName() : ptEntry.getName();
  +            writeBindingAssignment(bindingType, portName);
  +
               pw.println("        try {");
               if (params.returnType != null) {
                   pw.print("            ");
  @@ -313,7 +289,7 @@
                   while (i.hasNext()) {
                       count++;
                       Fault f = (Fault) i.next();
  -                    String namespace = port.getQName().getNamespaceURI();
  +                    String namespace = portType.getQName().getNamespaceURI();
                       pw.print("        catch (");
                       pw.print(Utils.getFullExceptionName(
                               f, symbolTable, namespace));
  @@ -327,7 +303,28 @@
               pw.print("            ");
               pw.println("throw new junit.framework.AssertionFailedError(\"Remote 
Exception caught: \" + re);");
               pw.println("        }");
  +            pw.println("    }");
  +            pw.println();
           }
  -    } // writePortTestCode
  +    } // writeServiceTestCode
  +
  +    public final void writeBindingAssignment(
  +            String bindingType, String portName) throws IOException {
  +        pw.println("        " + bindingType + " binding;");
  +        pw.println("        try {");
  +        pw.print("            binding = new ");
  +        pw.print(this.className.substring(
  +                0, this.className.length() - "TestCase".length()));
  +        pw.println("().get" + portName + "();");
  +        pw.println("        }");
  +        pw.println("        catch (javax.xml.rpc.JAXRPCException jre) {");
  +        pw.println("            throw new 
junit.framework.AssertionFailedError(\"JAX-RPC Exception caught: \" + jre);");
  +        pw.println("        }");
  +
  +        pw.println("        assertTrue(\"" +
  +                JavaUtils.getMessage("null00", "binding") +
  +                "\", binding != null);");
  +        pw.println();
  +    } // writeBindingAssignment
   
   } // class JavaTestCasepw
  
  
  


Reply via email to