[jboss-svn-commits] JBL Code SVN: r21515 - in labs/jbossesb/workspace/skeagh/commons/src: test/java and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 13 09:51:59 EDT 2008


Author: tfennelly
Date: 2008-08-13 09:51:59 -0400 (Wed, 13 Aug 2008)
New Revision: 21515

Added:
   labs/jbossesb/workspace/skeagh/commons/src/main/java/org/jboss/esb/xml/XMLParseUtils.java
   labs/jbossesb/workspace/skeagh/commons/src/test/java/org/
   labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/
   labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/
   labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/
   labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/XsdDOMValidatorTest.java
   labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-01.xml
   labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-02.xml
   labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/
   labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/
   labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-01.xsd
   labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-02.xsd
Log:
added some tests

Added: labs/jbossesb/workspace/skeagh/commons/src/main/java/org/jboss/esb/xml/XMLParseUtils.java
===================================================================
--- labs/jbossesb/workspace/skeagh/commons/src/main/java/org/jboss/esb/xml/XMLParseUtils.java	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/commons/src/main/java/org/jboss/esb/xml/XMLParseUtils.java	2008-08-13 13:51:59 UTC (rev 21515)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.esb.xml;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * XML Parsing utilities.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class XMLParseUtils
+{
+    /**
+     * Private default constructor.
+     */
+    private XMLParseUtils()
+    {
+    }
+
+    /**
+     * Basic DOM namespace aware parse.
+     *
+     * @param stream Document stream.
+     * @return Document instance.
+     * @throws ParserConfigurationException Parser config error.
+     * @throws IOException Error reading document stream.
+     * @throws SAXException XML parse error.
+     */
+    public static Document parseStream(final InputStream stream) throws ParserConfigurationException, IOException, SAXException
+    {
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        DocumentBuilder docBuilder;
+
+        factory.setNamespaceAware(true);
+        docBuilder = factory.newDocumentBuilder();
+
+        return docBuilder.parse(stream);
+    }
+}


Property changes on: labs/jbossesb/workspace/skeagh/commons/src/main/java/org/jboss/esb/xml/XMLParseUtils.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/XsdDOMValidatorTest.java
===================================================================
--- labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/XsdDOMValidatorTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/XsdDOMValidatorTest.java	2008-08-13 13:51:59 UTC (rev 21515)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.esb.xml;
+
+import junit.framework.TestCase;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:tom.fennelly at gmail.com">tom.fennelly at gmail.com</a>
+ */
+public class XsdDOMValidatorTest extends TestCase {
+
+    public void test_namespace_gathering() throws IOException, SAXException, ParserConfigurationException {
+        Document document = XMLParseUtils.parseStream(getClass().getResourceAsStream("xsdDomValidator-test-01.xml"));
+        XsdDOMValidator validator = new XsdDOMValidator(document);
+
+        assertEquals("http://www.milyn.org/xsd/test-xsd-01.xsd", validator.getDefaultNamespace().toString());
+        assertEquals("[http://www.milyn.org/xsd/test-xsd-01.xsd, http://www.milyn.org/xsd/test-xsd-02.xsd]", validator.getNamespaces().toString());
+    }
+
+    public void test_validation_validdoc() throws IOException, SAXException, ParserConfigurationException {
+        Document document = XMLParseUtils.parseStream(getClass().getResourceAsStream("xsdDomValidator-test-01.xml"));
+        XsdDOMValidator validator = new XsdDOMValidator(document);
+
+        validator.validate();
+    }
+
+    public void test_validation_invaliddoc() throws IOException, SAXException, ParserConfigurationException {
+        Document document = XMLParseUtils.parseStream(getClass().getResourceAsStream("xsdDomValidator-test-02.xml"));
+        XsdDOMValidator validator = new XsdDOMValidator(document);
+
+        try {
+            validator.validate();
+            fail("Expected SAXParseException");
+        } catch(SAXParseException e) {
+            assertEquals("cvc-complex-type.4: Attribute 'myName' must appear on element 'a:myNVP'.", e.getMessage());
+        }
+    }
+}


Property changes on: labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/XsdDOMValidatorTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-01.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-01.xml	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-01.xml	2008-08-13 13:51:59 UTC (rev 21515)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<nameValuePairs xmlns="http://www.milyn.org/xsd/test-xsd-01.xsd" xmlns:a="http://www.milyn.org/xsd/test-xsd-02.xsd">
+    <nameValuePair name="a" value="1" />
+    <a:myNVP myName="xxx" myValue="blah" />
+</nameValuePairs>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-01.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-02.xml
===================================================================
--- labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-02.xml	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-02.xml	2008-08-13 13:51:59 UTC (rev 21515)
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<nameValuePairs xmlns="http://www.milyn.org/xsd/test-xsd-01.xsd" xmlns:a="http://www.milyn.org/xsd/test-xsd-02.xsd">
+    <nameValuePair name="a" value="1" />
+    <a:myNVP />
+</nameValuePairs>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/commons/src/test/java/org/jboss/esb/xml/xsdDomValidator-test-02.xml
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-01.xsd
===================================================================
--- labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-01.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-01.xsd	2008-08-13 13:51:59 UTC (rev 21515)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:yyy="http://www.milyn.org/xsd/test-xsd-01.xsd"
+           targetNamespace="http://www.milyn.org/xsd/test-xsd-01.xsd"
+           elementFormDefault="qualified">
+
+    <xs:element name="nameValuePairs">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="yyy:abstractNVP" minOccurs="1" maxOccurs="unbounded" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="abstractNVP" type="yyy:abstractNVP" abstract="true" />
+    <xs:complexType name="abstractNVP" abstract="true" />
+
+    <xs:element name="nameValuePair" substitutionGroup="yyy:abstractNVP">
+        <xs:complexType>
+            <xs:complexContent>
+                <xs:extension base="yyy:abstractNVP">
+                    <xs:attribute name="name" type="xs:string" use="required"/>
+                    <xs:attribute name="value" type="xs:string" use="required"/>
+                </xs:extension>
+            </xs:complexContent>
+        </xs:complexType>
+    </xs:element>
+
+</xs:schema>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-01.xsd
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:eol-style
   + native

Added: labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-02.xsd
===================================================================
--- labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-02.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-02.xsd	2008-08-13 13:51:59 UTC (rev 21515)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           xmlns:yyy="http://www.milyn.org/xsd/test-xsd-01.xsd"
+           xmlns:zzz="http://www.milyn.org/xsd/test-xsd-02.xsd"
+           targetNamespace="http://www.milyn.org/xsd/test-xsd-02.xsd"
+           elementFormDefault="qualified">
+
+    <xs:import namespace="http://www.milyn.org/xsd/test-xsd-01.xsd" />
+
+    <xs:element name="myNVP" substitutionGroup="yyy:abstractNVP">
+        <xs:complexType>
+            <xs:complexContent>
+                <xs:extension base="yyy:abstractNVP">
+                    <xs:attribute name="myName" type="xs:string" use="required"/>
+                    <xs:attribute name="myValue" type="xs:string" use="required"/>
+                </xs:extension>
+            </xs:complexContent>
+        </xs:complexType>
+    </xs:element>
+
+</xs:schema>
\ No newline at end of file


Property changes on: labs/jbossesb/workspace/skeagh/commons/src/test/resources/META-INF/xsd/test-xsd-02.xsd
___________________________________________________________________
Name: svn:mime-type
   + text/xml
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list