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 ch...@apache.org on 2005/10/19 07:00:22 UTC

svn commit: r326391 - in /webservices/axis2/trunk/java/modules/codegen: project.xml src/org/apache/axis2/rpc/client/RPCCall.java test/org/apache/axis2/databinding/utils/ADBPullParserTest.java

Author: chinthaka
Date: Tue Oct 18 22:00:09 2005
New Revision: 326391

URL: http://svn.apache.org/viewcvs?rev=326391&view=rev
Log:
Moving XML comparisons to XMLUnit.

Modified:
    webservices/axis2/trunk/java/modules/codegen/project.xml
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/client/RPCCall.java
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/utils/ADBPullParserTest.java

Modified: webservices/axis2/trunk/java/modules/codegen/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/project.xml?rev=326391&r1=326390&r2=326391&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/project.xml (original)
+++ webservices/axis2/trunk/java/modules/codegen/project.xml Tue Oct 18 22:00:09 2005
@@ -49,7 +49,7 @@
         <dependency>
             <groupId>ws-commons</groupId>
             <artifactId>XmlSchema</artifactId>
-			<version>${XmlSchema.version}</version>
+            <version>${XmlSchema.version}</version>
         </dependency>
         <dependency>
             <groupId>geronimo-spec</groupId>
@@ -61,14 +61,14 @@
         </dependency>
 
         <dependency>
-			<groupId>xmlbeans</groupId>
-			<artifactId>xbean</artifactId>
-			<version>${xbean.version}</version>
-			<type>jar</type>
-			<properties>
-				<module>true</module>
-			</properties>
-		</dependency>
+            <groupId>xmlbeans</groupId>
+            <artifactId>xbean</artifactId>
+            <version>${xbean.version}</version>
+            <type>jar</type>
+            <properties>
+                <module>true</module>
+            </properties>
+        </dependency>
         <dependency>
             <groupId>commons-logging</groupId>
             <artifactId>commons-logging</artifactId>
@@ -113,38 +113,47 @@
             </properties>
             <url>http://dist.codehaus.org/stax/jars/</url>
         </dependency>
-	<dependency>
-		<groupId>axis</groupId>
-		<artifactId>axis-wsdl4j</artifactId>
-		<version>${axis.wsdl4j.version}</version>
-		<properties>
-			<module>true</module>
-		</properties>
-	</dependency>
-	<dependency>
-		<groupId>ant</groupId>
-		<artifactId>ant</artifactId>
-		<version>${ant.version}</version>
-		<type>jar</type>
-		<properties>
-			<module>true</module>
-		</properties>
-	</dependency>
+        <dependency>
+            <groupId>axis</groupId>
+            <artifactId>axis-wsdl4j</artifactId>
+            <version>${axis.wsdl4j.version}</version>
+            <properties>
+                <module>true</module>
+            </properties>
+        </dependency>
+        <dependency>
+            <groupId>ant</groupId>
+            <artifactId>ant</artifactId>
+            <version>${ant.version}</version>
+            <type>jar</type>
+            <properties>
+                <module>true</module>
+            </properties>
+        </dependency>
+        <dependency>
+            <groupId>xmlunit</groupId>
+            <artifactId>xmlunit</artifactId>
+            <version>${xmlunit.version}</version>
+            <properties>
+                <module>true</module>
+            </properties>
+            <url>http://www.ibiblio.org/maven/xmlunit/jars/</url>
+        </dependency>
     </dependencies>
 
     <reports/>
-	<!-- add the build properties-->
-	<build>
-	<resources>
-		<resource>
-			<directory>src</directory>
-			<includes>
-				<include>**/*.properties</include>
-				<include>**/*.xml</include>
-				<include>**/*.xsl</include>
-				<include>**/*.xsd</include>
-			</includes>
-		</resource>
-	</resources>
-	</build>
+    <!-- add the build properties-->
+    <build>
+        <resources>
+            <resource>
+                <directory>src</directory>
+                <includes>
+                    <include>**/*.properties</include>
+                    <include>**/*.xml</include>
+                    <include>**/*.xsl</include>
+                    <include>**/*.xsd</include>
+                </includes>
+            </resource>
+        </resources>
+    </build>
 </project>

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/client/RPCCall.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/client/RPCCall.java?rev=326391&r1=326390&r2=326391&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/client/RPCCall.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/rpc/client/RPCCall.java Tue Oct 18 22:00:09 2005
@@ -1,19 +1,18 @@
 package org.apache.axis2.rpc.client;
 
 import org.apache.axis2.AxisFault;
-import org.apache.axis2.rpc.RPCParameter;
-import org.apache.axis2.rpc.receivers.SimpleTypeMapper;
-import org.apache.axis2.databinding.utils.ADBPullParser;
 import org.apache.axis2.clientapi.Call;
 import org.apache.axis2.clientapi.Callback;
 import org.apache.axis2.clientapi.InOutMEPClient;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.databinding.utils.ADBPullParser;
 import org.apache.axis2.description.OperationDescription;
-import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.impl.llom.builder.StAXOMBuilder;
 import org.apache.axis2.om.impl.llom.factory.OMXMLBuilderFactory;
+import org.apache.axis2.rpc.receivers.SimpleTypeMapper;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.wsdl.WSDLConstants;
 

Modified: webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/utils/ADBPullParserTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/utils/ADBPullParserTest.java?rev=326391&r1=326390&r2=326391&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/utils/ADBPullParserTest.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/utils/ADBPullParserTest.java Tue Oct 18 22:00:09 2005
@@ -1,6 +1,5 @@
 package org.apache.axis2.databinding.utils;
 
-import junit.framework.TestCase;
 import org.apache.axis2.databinding.ADBBean;
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMAttribute;
@@ -9,11 +8,18 @@
 import org.apache.axis2.om.impl.llom.builder.StAXOMBuilder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.custommonkey.xmlunit.XMLTestCase;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamConstants;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.util.ArrayList;
 
 /*
@@ -34,7 +40,7 @@
  * @author : Eran Chinthaka (chinthaka@apache.org)
  */
 
-public class ADBPullParserTest extends TestCase {
+public class ADBPullParserTest extends XMLTestCase {
 
     protected Log log = LogFactory.getLog(getClass());
 
@@ -80,38 +86,40 @@
 
             QName projectQName = new QName("Person");
             XMLStreamReader pullParser = ADBPullParser.createPullParser(projectQName, propertyList.toArray(), null);
+
+//            StringBuffer buff = new StringBuffer();
 //            while (pullParser.hasNext()) {
 //                int eventCode = pullParser.next();
-//                System.out.println(eventCode + ":" + getEventString(eventCode));
+//
+//                switch (eventCode) {
+//                    case XMLStreamConstants.START_ELEMENT :
+//                        buff.append("<");
+//                        buff.append(pullParser.getLocalName());
+//                        buff.append(">");
+//                        break;
+//                    case XMLStreamConstants.CHARACTERS :
+//                        buff.append(pullParser.getText());
+//                        break;
+//                    case XMLStreamConstants.END_ELEMENT :
+//                        buff.append("</");
+//                        buff.append(pullParser.getLocalName());
+//                        buff.append(">");
+//                        break;
+//                    default:
+//                        System.out.println("No Other event can be trown here");
+//                }
 //            }
 
-            StringBuffer buff = new StringBuffer();
-            while (pullParser.hasNext()) {
-                int eventCode = pullParser.next();
-
-                switch (eventCode) {
-                    case XMLStreamConstants.START_ELEMENT :
-                        buff.append("<");
-                        buff.append(pullParser.getLocalName());
-                        buff.append(">");
-                        break;
-                    case XMLStreamConstants.CHARACTERS :
-                        buff.append(pullParser.getText());
-                        break;
-                    case XMLStreamConstants.END_ELEMENT :
-                        buff.append("</");
-                        buff.append(pullParser.getLocalName());
-                        buff.append(">");
-                        break;
-                    default:
-                        System.out.println("No Other event can be trown here");
-                }
-            }
-
-
-            assertEquals(exptectedXML, buff.toString());
-        } catch (XMLStreamException e) {
-            log.error("Parser Error " + e);
+
+            Document actualDom = newDocument(getStringXML(pullParser));
+            Document expectedDocument = newDocument(exptectedXML);
+            assertXMLEqual(actualDom, expectedDocument);
+        } catch (ParserConfigurationException e) {
+            fail("Exception in parsing documents " + e);
+        } catch (SAXException e) {
+            fail("Exception in parsing documents " + e);
+        } catch (IOException e) {
+            fail("Exception in parsing documents " + e);
         }
 
     }
@@ -155,9 +163,10 @@
             String exptectedXML = "<Person><Name>FooOne</Name><Organization>Apache</Organization>" +
                     "<Dependent><Name>FooTwo</Name><Age>25</Age><Sex>Male</Sex><Depemdent>" +
                     "<Name>FooTwo</Name><Age>25</Age><Sex>Male</Sex><Depemdent><Name>FooTwo</Name>" +
-                    "<Age>25</Age><Sex>Male</Sex></Depemdent></Depemdent></Dependent><Dependent>" +
-                    "<Name>FooTwo</Name><Age>25</Age><Sex>Male</Sex><Depemdent><Name>FooTwo</Name>" +
-                    "<Age>25</Age><Sex>Male</Sex></Depemdent></Dependent></Person>";
+                    "<Age>25</Age><Sex>Male</Sex></Depemdent></Depemdent></Dependent>" +
+                    "<test:Dependent xmlns:test=\"http://whatever.com\"><Name>FooTwo</Name><Age>25</Age>" +
+                    "<Sex>Male</Sex><Depemdent><Name>FooTwo</Name><Age>25</Age><Sex>Male</Sex>" +
+                    "</Depemdent></test:Dependent></Person>";
 
 
             ArrayList propertyList = new ArrayList();
@@ -181,33 +190,38 @@
             QName projectQName = new QName("Person");
             XMLStreamReader pullParser = ADBPullParser.createPullParser(projectQName, propertyList.toArray(), null, true);
 
-            StringBuffer buff = new StringBuffer();
-            while (pullParser.hasNext()) {
-                int eventCode = pullParser.next();
-
-                switch (eventCode) {
-                    case XMLStreamConstants.START_ELEMENT :
-                        buff.append("<");
-                        buff.append(pullParser.getLocalName());
-                        buff.append(">");
-                        break;
-                    case XMLStreamConstants.CHARACTERS :
-                        buff.append(pullParser.getText());
-                        break;
-                    case XMLStreamConstants.END_ELEMENT :
-                        buff.append("</");
-                        buff.append(pullParser.getLocalName());
-                        buff.append(">");
-                        break;
-                    default:
-                        System.out.println("No Other event can be trown here");
-                }
-            }
-
-
-            assertEquals(exptectedXML, buff.toString());
-        } catch (XMLStreamException e) {
-            log.error("Parser Error " + e);
+//            StringBuffer buff = new StringBuffer();
+//            while (pullParser.hasNext()) {
+//                int eventCode = pullParser.next();
+//
+//                switch (eventCode) {
+//                    case XMLStreamConstants.START_ELEMENT :
+//                        buff.append("<");
+//                        buff.append(pullParser.getLocalName());
+//                        buff.append(">");
+//                        break;
+//                    case XMLStreamConstants.CHARACTERS :
+//                        buff.append(pullParser.getText());
+//                        break;
+//                    case XMLStreamConstants.END_ELEMENT :
+//                        buff.append("</");
+//                        buff.append(pullParser.getLocalName());
+//                        buff.append(">");
+//                        break;
+//                    default:
+//                        System.out.println("No Other event can be trown here");
+//                }
+//            }
+
+            Document actualDom = newDocument(getStringXML(pullParser));
+            Document expectedDocument = newDocument(exptectedXML);
+            assertXMLEqual(actualDom, expectedDocument);
+        } catch (ParserConfigurationException e) {
+            fail("Exception in parsing documents " + e);
+        } catch (SAXException e) {
+            fail("Exception in parsing documents " + e);
+        } catch (IOException e) {
+            fail("Exception in parsing documents " + e);
         }
 
     }
@@ -304,12 +318,31 @@
         }
 
         String stringXML = getStringXML(ADBPullParser.createPullParser(elementQName, null, attribute, true));
-        assertEquals(stringXML, expectedXML);
+        try {
+            Document actualDom = newDocument(stringXML);
+            Document expectedDocument = newDocument(expectedXML);
+            assertXMLEqual(actualDom, expectedDocument);
+        } catch (ParserConfigurationException e) {
+            fail("Exception in parsing documents " + e);
+        } catch (SAXException e) {
+            fail("Exception in parsing documents " + e);
+        } catch (IOException e) {
+            fail("Exception in parsing documents " + e);
+        }
+
 
     }
 
     private String getStringXML(XMLStreamReader reader) {
         OMElement omelement = new StAXOMBuilder(reader).getDocumentElement();
         return omelement.toString();
+    }
+
+    public Document newDocument(String xml)
+            throws ParserConfigurationException, SAXException, IOException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        DocumentBuilder db = dbf.newDocumentBuilder();
+        return db.parse(new ByteArrayInputStream(xml.getBytes()));
     }
 }