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); + } + } + } }