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 bu...@apache.org on 2002/09/25 16:50:23 UTC

cvs commit: xml-axis/java/test/badWSDL build.xml mismatchedOperation.wsdl PackageTests.java WSDL2JavaFailuresTestCase.java

butek       2002/09/25 07:50:23

  Added:       java/test/badWSDL build.xml mismatchedOperation.wsdl
                        PackageTests.java WSDL2JavaFailuresTestCase.java
  Log:
  I added a test for bad WSDL files that everyone can use.  If you expect
  WSDL2Java to fail on a particular WSDL file and you wish to test that
  failure, simply dump your WSDL file into test/badWSDL/.  This test runs
  WSDL2Java on all WSDL files in this directory and passes if WSDL2Java
  fails.
  
  Revision  Changes    Path
  1.1                  xml-axis/java/test/badWSDL/build.xml
  
  Index: build.xml
  ===================================================================
  <?xml version="1.0" ?>
  <!DOCTYPE project [
          <!ENTITY properties SYSTEM "file:../../xmls/properties.xml">
          <!ENTITY paths  SYSTEM "file:../../xmls/path_refs.xml">
          <!ENTITY taskdefs SYSTEM "file:../../xmls/taskdefs.xml">
          <!ENTITY taskdefs_post_compile SYSTEM "file:../../xmls/taskdefs_post_compile.xml">
          <!ENTITY targets SYSTEM "file:../../xmls/targets.xml">
  ]>
  
  <!-- ===================================================================
  <description>
     Test/Sample Component file for Axis
  
  Notes:
     This is a build file for use with the Jakarta Ant build tool.
  
  Prerequisites:
  
     jakarta-ant from http://jakarta.apache.org
  
  Build Instructions:
     To compile
          ant compile
     To execute
          ant run
  
  Author:
    Matt Seibert mseibert@us.ibm.com
  
  Copyright:
    Copyright (c) 2002-2003 Apache Software Foundation.
  </description>
  ==================================================================== -->
  
  <project default="compile">
  
  <property name="axis.home" location="../.." />
  <property name="componentName" value="test/badWSDL" />
          &properties;
          &paths;
          &taskdefs;
          &taskdefs_post_compile;
          &targets;
  
  <target name="clean">
      <echo message="Removing ${build.dir}/classes/${componentName} and ${build.dir}/work/${componentName}" />
      <delete dir="${build.dir}/classes/${componentName}"/>
      <delete dir="${build.dir}/work/${componentName}"/>
  </target>
  
  <target name="copy" depends="setenv"/>
  
  <target name="compile" depends="copy">
    <echo message="Compiling test.badWSDL"/>
      <!-- Test WSDL2Java on bad WSDL files. -
  
      <copy todir="${build.dir}/work/test/badWSDL" overwrite="yes">
        <fileset dir="${axis.home}/test/badWSDL">
          <include name="*TestCase.java"/>
        </fileset>
      </copy>
  
      <javac srcdir="${build.dir}/work" destdir="${build.dest}" fork="${javac.fork}"
             debug="${debug}">
        <classpath refid="classpath" />
        <include name="test/badWSDL/*.java" />
      </javac>
  -->
      <javac srcdir="${axis.home}" destdir="${build.dest}" debug="${debug}" fork="${javac.fork}">
        <classpath>
           <path refid="classpath"/>
        </classpath>
        <include name="test/badWSDL/*.java"/>
      </javac>
  
  </target>
  
  <target name="run" >
    <antcall target="execute-Component" />
  </target>
  
  </project>
  
  
  
  1.1                  xml-axis/java/test/badWSDL/mismatchedOperation.wsdl
  
  Index: mismatchedOperation.wsdl
  ===================================================================
  <?xml version="1.0" ?>
  
  <definitions name="urn:GetQuote" 
               targetNamespace="urn:xmltoday-delayed-quotes"
               xmlns:tns="urn:xmltoday-delayed-quotes"
               xmlns:xsd="http://www.w3.org/1999/XMLSchema"
               xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
               xmlns="http://schemas.xmlsoap.org/wsdl/">
  
    <!-- message declns -->
    <message name="GetQuoteRequest">
      <part name="symbol" type="xsd:string"/>
    </message>
  
    <message name="GetQuoteResponse">
      <part name="result" type="xsd:float"/>
    </message>
  
    <!-- port type declns -->
    <portType name="GetQuote">
      <operation name="getQuote" >
        <input  message="tns:GetQuoteRequest"/>
        <output message="tns:GetQuoteResponse"/>
      </operation>
    </portType>
  
    <!-- binding declns -->
    <binding name="GetQuoteBinding" type="tns:GetQuote">
      <soap:binding style="rpc" 
                    transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="getQuote">
        <soap:operation soapAction="getQuote"/>
        <input name="justName">   ****** here is the difference ****
          <soap:body use="encoded" 
                     namespace="urn:xmltoday-delayed-quotes" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="urn:xmltoday-delayed-quotes"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
      </operation>
    </binding>
  
    <!-- service decln -->
    <service name="GetQuoteService">
      <port name="GetQuote" binding="tns:GetQuoteBinding">
        <soap:address location="http://localhost:8080/axis/servlet/AxisServlet"/>
      </port>
    </service>
  
  </definitions>
  
  
  
  1.1                  xml-axis/java/test/badWSDL/PackageTests.java
  
  Index: PackageTests.java
  ===================================================================
  package test.badWSDL;
  
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  /**
   */
  public class PackageTests
  {
      public static void main (String[] args) {
              junit.textui.TestRunner.run (suite());
      }
  
      public static Test suite()
      {
          TestSuite suite = new TestSuite("All bad WSDL tests");
  
          suite.addTest(WSDL2JavaFailuresTestCase.suite());
          return suite;
      }
  }
  
  
  
  1.1                  xml-axis/java/test/badWSDL/WSDL2JavaFailuresTestCase.java
  
  Index: WSDL2JavaFailuresTestCase.java
  ===================================================================
  package test.badWSDL;
  
  import junit.framework.AssertionFailedError;
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  
  import org.apache.axis.wsdl.toJava.Emitter;
  
  import java.io.File;
  import java.io.FilenameFilter;
  import java.io.IOException;
  
  /**
   * This test grabs each WSDL file in the directory and runs WSDL2Java against them.
   * They should all fail.  If one does not, this test fails.
  */
  
  public class WSDL2JavaFailuresTestCase extends TestCase {
      private static final String badWSDL = "test" + File.separatorChar +
              "badWSDL";
      private String wsdl;
  
      public WSDL2JavaFailuresTestCase(String wsdl) {
          super("testWSDLFailures");
          this.wsdl = wsdl;
      }
  
      /**
       * Create a test suite with a single test for each WSDL file in this
       * directory.
       */
      public static Test suite() {
          TestSuite tests = new TestSuite();
          String[] wsdls = getWSDLs();
          for (int i = 0; i < wsdls.length; ++i) {
              tests.addTest(new WSDL2JavaFailuresTestCase(badWSDL +
                      File.separatorChar + wsdls[i]));
          }
          return tests;
      } // suite
  
      /**
       * Get a list of all WSDL files in this directory.
       */
      private static String[] getWSDLs() {
          String[] wsdls = null;
          try {
              File failuresDir = new File(badWSDL);
              FilenameFilter fnf = new FilenameFilter()
              {
                  public boolean accept(File dir, String name) {
                      return name.endsWith(".wsdl");
                  }
              };
              wsdls = failuresDir.list(fnf);
          }
          catch (Throwable t) {
              wsdls = null;
          }
          if (wsdls == null) {
              wsdls = new String[0];
          }
          return wsdls;
      } // getWSDLs
  
      /**
       * Call WSDL2Java on this WSDL file, failing if WSDL2Java succeeds.
       */
      public void testWSDLFailures() {
          boolean failed  = false;
          Emitter emitter = new Emitter();
  
          emitter.setTestCaseWanted(true);
          emitter.setHelperWanted(true);    
          emitter.setImports(true);
          emitter.setAllWanted(true);
          emitter.setServerSide(true);
          emitter.setSkeletonWanted(true);
          try {
              emitter.run(wsdl);
              failed = true;
          }
          catch (Throwable e) {
          }
          if (failed) {
              fail("WSDL2Java " + wsdl + " should have failed.");
          }
      } // testWSDLFailures
  } // class WSDL2JavaFailuresTestCase