[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