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 ve...@apache.org on 2005/06/03 16:23:50 UTC
svn commit: r179795 [4/4] - in
/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/xml_conformance/XMLConformanceTestingProject:
./ bin/ src/org/apache/axis/encoding/ src/org/apache/axis/om/
src/org/apache/axis/om/impl/llom/ src/org/apache/axis/om/impl/llom/builder/
src/org/apache/axis/om/impl/llom/factory/
src/org/apache/axis/om/impl/llom/mtom/
src/org/apache/axis/om/impl/llom/serialize/
src/org/apache/axis/om/impl/llom/traverse/
src/org/apache/axis/om/impl/llom/util/ src/org/apache/axis/om/impl/mtom/
src/org/apache/axis/soap/ src/org/apache/axis/soap/impl/
src/org/apache/axis/soap/impl/llom/
src/org/apache/axis/soap/impl/llom/builder/
src/org/apache/axis/soap/impl/llom/factory/
src/org/apache/axis/soap/impl/llom/soap11/
src/org/apache/axis/soap/impl/llom/soap12/ test/org/ test/org/apache/
test/org/apache/axis/ test/org/apache/axis/om/
test/org/apache/axis/om/infoset/
Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/xml_conformance/XMLConformanceTestingProject/test/org/apache/axis/om/infoset/XMLConformanceTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/xml_conformance/XMLConformanceTestingProject/test/org/apache/axis/om/infoset/XMLConformanceTest.java?rev=179795&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/xml_conformance/XMLConformanceTestingProject/test/org/apache/axis/om/infoset/XMLConformanceTest.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/xml_conformance/XMLConformanceTestingProject/test/org/apache/axis/om/infoset/XMLConformanceTest.java Fri Jun 3 07:23:47 2005
@@ -0,0 +1,146 @@
+/*
+ * Created on Jun 3, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.om.infoset;
+
+import java.io.File;
+import org.custommonkey.xmlunit.XMLTestCase;
+import org.custommonkey.xmlunit.Diff;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.impl.llom.factory.OMXMLBuilderFactory;
+import org.apache.axis.om.impl.llom.builder.StAXOMBuilder;
+import org.apache.axis.om.impl.llom.OMDocument;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+import javax.xml.stream.XMLStreamException;
+import org.apache.axis.om.OMAbstractFactory;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileInputStream;
+
+/**
+ * @author sunja07
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class XMLConformanceTest extends XMLTestCase {
+
+ private static int successCount=0;
+ private static int parsedCount=0;
+ private static int fileCount=0;
+ /**
+ * @param name
+ */
+ public XMLConformanceTest(String name) {
+ super(name);
+ }
+
+ public void setUp() {
+ }
+
+ public void testXMLConformance() throws Exception{
+ //The 'testSuiteDirectory' value can also be a specific file location
+ //value, needn't necessarily be a directory
+ File testSuiteDirectory = new File("C:\\work\\XMLConformanceWork\\XMLSuite\\xmlconf\\");
+ ProcessDir(testSuiteDirectory);
+ System.out.println("File count is " + fileCount);
+ System.out.println("Parsed count is " + parsedCount +
+ ". This is just partial success");
+ System.out.println("Complete success count is " + successCount);
+ }
+
+ public void ProcessDir(File dir) throws Exception
+ {
+ if (dir.isDirectory()) {
+ //process all children
+ String[] children = dir.list();
+ for (int i=0; i<children.length; i++) {
+ File child = (new File(dir, children[i]));
+ ProcessDir(child);
+ }
+ } else { //meaning you got a file
+ //check if it's xml file
+ String absPath = dir.getAbsolutePath();
+ if(absPath.endsWith(".xml")) {
+ //process it
+ testSingleFileConformance(absPath);
+ fileCount++;
+ } else {
+ //ignore non .xml files
+ }
+ }
+ }
+
+ public void testSingleFileConformance(String absolutePath)
+ throws Exception {
+ OMElement rootElement;
+ OMDocument document;
+ //fileCount++;
+ //get a stax om builder
+ try {
+ StAXOMBuilder staxOMBuilder = OMXMLBuilderFactory.
+ createStAXOMBuilder(OMAbstractFactory.getOMFactory(),
+ XMLInputFactory.newInstance().createXMLStreamReader(
+ new FileInputStream(absolutePath) , "UTF-8"));
+
+ document = (OMDocument)staxOMBuilder.getDocument();
+ rootElement = staxOMBuilder.getDocumentElement();
+ } catch (Exception e) {
+ System.err.println("Exception trying to get hold of rootElement: "
+ + e.getMessage());
+ System.err.println("in file: "+ absolutePath +"\n");
+ return;
+ }
+
+ //we will write output into the file named TempOutputFile.txt in
+ //current directory
+ String tempFile = "TempOutputFile.txt";
+ XMLStreamWriter writer;
+ try {
+ writer = XMLOutputFactory.newInstance().
+ createXMLStreamWriter(new FileOutputStream(tempFile));
+ document.serializeWithCache(writer);
+// rootElement.serialize(writer, true);
+ }catch(XMLStreamException e) {
+ System.err.println(
+ "Error in creating XMLStreamWriter to write parsed xml into");
+ return;
+ } catch (Exception e) {
+ System.err.println("Exception while serializing: " +
+ e.getMessage());
+ System.err.println("in file: "+ absolutePath +"\n");
+ return;
+ }
+ writer.flush();
+ writer.close();
+ parsedCount++;
+ //Comparing the equality of the TempOutputFile.txt and the input xml is due
+ Diff diff;
+ try {
+ diff = compareXML(new FileReader(absolutePath), new FileReader(
+ "TempOutputFile.txt"));
+ } catch (Exception e) {
+ System.out.println("" +
+ "Error comparing original and generated files for: " +
+ absolutePath);
+ System.out.println("Error message is: "+e.getMessage());
+ return;
+ }
+ try {
+ assertXMLEqual(diff,true);
+ successCount++;
+ } catch (Error e) {
+ System.out.println("XMLEquality failed for file: "+absolutePath);
+ return;
+ }
+
+ }
+ public void tearDown() {
+ }
+
+}