owenb       2002/11/14 08:39:25

  Modified:    java/test/schema SchemaTest.java
  Log:
  Added checks to make sure that the mappings generated are the same as those expected
  
  Revision  Changes    Path
  1.3       +89 -8     xml-axis-wsif/java/test/schema/SchemaTest.java
  
  Index: SchemaTest.java
  ===================================================================
  RCS file: /home/cvs/xml-axis-wsif/java/test/schema/SchemaTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SchemaTest.java   8 Nov 2002 16:54:02 -0000       1.2
  +++ SchemaTest.java   14 Nov 2002 16:39:25 -0000      1.3
  @@ -81,6 +81,9 @@
       String wsdlLocation1 = TestUtilities.getWsdlPath("java\\test\\schema") + 
"SchemaTest1.wsdl";
       String wsdlLocation2 = TestUtilities.getWsdlPath("java\\test\\schema") + 
"SchemaTest2.wsdl";    
       String wsdlLocation3 = TestUtilities.getWsdlPath("java\\test\\schema") + 
"SchemaTest3.wsdl";    
  +
  +     Hashtable expectedA = new Hashtable();  
  +     Hashtable expectedB = new Hashtable();
           
       public SchemaTest(String name) {
           super(name);
  @@ -96,16 +99,69 @@
   
       public void setUp() {
           TestUtilities.setUpExtensionsAndProviders();
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "addresses"),
  +            "[Lwsiftest.types.Address;");
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "InfoResponse"),
  +            "wsiftest.types.InfoResponseElement");
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "ArrayOfArrayOfAddress"),
  +            "[[Lwsiftest.types.Address;");
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "phone"),
  +            "wsiftest.types.Phone");
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "ArrayOfLong"),
  +            "[[J");
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "address"),
  +            "wsiftest.types.Address");
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "InfoRequest"),
  +            "wsiftest.types.InfoRequestElement");
  +        expectedA.put(new QName("http://types.wsiftest/";, "ArrayOfInt"), "[I");
  +        expectedA.put(
  +            new QName("http://types.wsiftest/";, "ArrayOfAddress"),
  +            "[Lwsiftest.types.Address;");
  +            
  +            
  +        // For nested xsd files namepsaces/results are slightly different    
  +        expectedB.put(
  +            new QName("http://types.wsiftest/";, "addresses"),
  +            "[Lwsiftest.types2.Address;");
  +        expectedB.put(
  +            new QName("http://types.wsiftest/";, "InfoResponse"),
  +            "wsiftest.types.InfoResponseElement");
  +        expectedB.put(
  +            new QName("http://types2.wsiftest/";, "ArrayOfArrayOfAddress"),
  +            "[[Lwsiftest.types2.Address;");
  +        expectedB.put(
  +            new QName("http://types2.wsiftest/";, "phone"),
  +            "wsiftest.types2.Phone");
  +        expectedB.put(
  +            new QName("http://types.wsiftest/";, "ArrayOfLong"),
  +            "[[J");
  +        expectedB.put(
  +            new QName("http://types2.wsiftest/";, "address"),
  +            "wsiftest.types2.Address");
  +        expectedB.put(
  +            new QName("http://types.wsiftest/";, "InfoRequest"),
  +            "wsiftest.types.InfoRequestElement");
  +        expectedB.put(new QName("http://types.wsiftest/";, "ArrayOfInt"), "[I");
  +        expectedB.put(
  +            new QName("http://types2.wsiftest/";, "ArrayOfAddress"),
  +            "[Lwsiftest.types2.Address;");            
       }
   
       public void testParsing() {
  -        doIt(wsdlLocation1); 
  -        doIt(wsdlLocation2);                               
  -        doIt(wsdlLocation3);        
  +        doIt(wsdlLocation1, expectedA); 
  +        doIt(wsdlLocation2, expectedA);                               
  +        doIt(wsdlLocation3, expectedB);        
       }
   
   
  -    private void doIt(String wsdl) {
  +    private void doIt(String wsdl, Hashtable expectedResults) {
           try {
                System.out.println("*** " + wsdl + " ***\n");
                Definition def = WSIFUtils.readWSDL(null, wsdl);
  @@ -121,11 +177,13 @@
                                }
                } else {
                        System.out.println("WITHOUT STANDARD MAPPINGS RETURNED 
NULL!!");
  +                     assertTrue("With wsdl "+wsdl+", table without standard 
mappings was null", false);
                }
  +             checkResult(wsdl, table, expectedResults);
                System.out.println("- - - -");
                Hashtable table2 = new Hashtable();
                Parser.getTypeMappings(def, table2);
  -             if (table != null) {
  +             if (table2 != null) {
                    System.out.println("WITH STANDARD MAPPINGS:");
                    Enumeration k = table2.keys();
                                while(k.hasMoreElements()) {
  @@ -135,7 +193,9 @@
                                }
                } else {
                        System.out.println("WITH STANDARD MAPPINGS RETURNED NULL!!");
  +                     assertTrue("With wsdl "+wsdl+", table with standard mappings 
was null", false);
                }
  +             checkResult(wsdl, table2, expectedResults);
                
System.out.println("-----------------------------------------------------\n");         
 
           } catch (Exception e) {
               System.err.println(
  @@ -147,7 +207,7 @@
           }
       }
       
  -    private void doItWithClassLoader(String wsdl) {
  +    private void doItWithClassLoader(String wsdl, Hashtable expectedResults) {
           try {
                System.out.println("*** " + wsdl + " ***\n");
                ClassLoader loader = this.getClass().getClassLoader();
  @@ -164,11 +224,13 @@
                                }
                } else {
                        System.out.println("WITHOUT STANDARD MAPPINGS RETURNED 
NULL!!");
  +                     assertTrue("With wsdl "+wsdl+" and using a classloader, table 
without standard mappings was null", false);                      
                }
  +             checkResult(wsdl, table, expectedResults);              
                System.out.println("- - - -");
                Hashtable table2 = new Hashtable();
                Parser.getTypeMappings(def, table2, loader, true);
  -             if (table != null) {
  +             if (table2 != null) {
                    System.out.println("WITH STANDARD MAPPINGS:");
                    Enumeration k = table2.keys();
                                while(k.hasMoreElements()) {
  @@ -178,7 +240,9 @@
                                }
                } else {
                        System.out.println("WITH STANDARD MAPPINGS RETURNED NULL!!");
  +                     assertTrue("With wsdl "+wsdl+" and using a classloader, table 
with standard mappings was null", false);                 
                }
  +             checkResult(wsdl, table2, expectedResults);             
                
System.out.println("-----------------------------------------------------\n");         
 
           } catch (Exception e) {
               System.err.println(
  @@ -188,5 +252,22 @@
           } finally {
                TestUtilities.resetDefaultProviders();
           }
  -    }    
  +    }
  +    
  +    private void checkResult(String wsdl, Hashtable results, Hashtable expected) {
  +     Enumeration enum = expected.keys();
  +     while(enum.hasMoreElements()) {
  +             QName key = (QName) enum.nextElement();
  +             String value = (String) expected.get(key);
  +             if (results.containsKey(key)) {
  +                     String resultVal = (String) results.get(key);
  +                     if (!value.equals(resultVal)) {
  +                             assertTrue("Using wsdl "+wsdl+" results did not 
contain correct value for type "+key
  +                             + ", value should be "+value+" but result was 
"+resultVal, false);
  +                     }
  +             } else {
  +                     assertTrue("Using wsdl "+wsdl+" results did not contain type 
"+key, false);
  +             }
  +     }
  +    }
   }
  
  
  


Reply via email to