You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/02/21 21:48:27 UTC

svn commit: r1886772 [2/4] - in /xmlbeans/trunk/src/test/java: compile/scomp/detailed/ misc/detailed/

Modified: xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java?rev=1886772&r1=1886771&r2=1886772&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java (original)
+++ xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression1_50Test.java Sun Feb 21 21:48:26 2021
@@ -1,549 +1,549 @@
-/*   Copyright 2004 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package misc.detailed;
-
-import misc.common.JiraTestBase;
-import org.apache.xmlbeans.*;
-import org.apache.xmlbeans.impl.tool.Parameters;
-import org.apache.xmlbeans.impl.tool.SchemaCompiler;
-import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import xmlbeans48.FeedInfoType;
-
-import javax.xml.namespace.QName;
-import java.io.*;
-import java.util.*;
-
-import static org.junit.Assert.*;
-
-public class JiraRegression1_50Test extends JiraTestBase {
-
-    /*
-    * [XMLBEANS-2] Problem with XmlError.forObject(String,int,XmlObject)
-    */
-    @Test
-    public void test_jira_xmlbeans02() throws Exception {
-        StringBuilder xmlstringbuf = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
-        xmlstringbuf.append("<test>");
-        xmlstringbuf.append("<testchild attr=\"abcd\"> Jira02 </testchild>");
-        xmlstringbuf.append("</test>");
-
-        XmlObject myxmlobj = null;
-        List errors = new ArrayList();
-        XmlOptions options = new XmlOptions().setErrorListener(errors);
-        try {
-            myxmlobj = XmlObject.Factory.parse(xmlstringbuf.toString(), options);
-            XmlCursor cur = myxmlobj.newCursor();
-            XmlError xmlerr = XmlError.forObject("This is my custom error message", XmlError.SEVERITY_ERROR, myxmlobj);
-
-            // call an API on the cursor : verification of cursor not being disposed
-            System.out.println("Cursor Text Value: " + cur.getTextValue());
-
-        } catch (XmlException xme) {
-            if (!xme.getErrors().isEmpty()) {
-                for (Iterator itr = xme.getErrors().iterator(); itr.hasNext();) {
-                    System.out.println("Parse Errors :" + itr.next());
-                }
-            }
-
-        } catch (NullPointerException npe) {
-            fail("test_jira_xmlbeans02() : Null Pointer Exception thrown !");
-        }
-
-        printOptionErrMsgs(errors);
-    }
-
-    /*
-    * [XMLBEANS-4] xs:decimal size greater than 18 results in uncompilable java code
-    */
-    @Test
-    public void test_jira_xmlbeans04() {
-        List errors = new ArrayList();
-
-        Parameters params = new Parameters();
-        params.setXsdFiles(new File[]{new File(scompTestFilesRoot + "xmlbeans_04.xsd_")});
-        params.setErrorListener(errors);
-        params.setSrcDir(schemaCompSrcDir);
-        params.setClassesDir(schemaCompClassesDir);
-
-        SchemaCompiler.compile(params);
-        if (printOptionErrMsgs(errors)) {
-            fail("test_jira_xmlbeans04() : Errors found when executing scomp");
-        }
-    }
-
-
-
-    /*
-    * [XMLBEANS-9] Null Pointer Exception when running validate from cmd line
-    */
-    @Test
-    @Ignore("no shell tests on junit")
-    public void test_jira_xmlbeans09() throws Exception {
-        // Exec validate script from cmd line - Refer xmlbeans_09.xsd, xmlbeans_09.xml
-
-        StringBuilder sb = new StringBuilder(" ");
-        sb.append(System.getProperty("xbean.rootdir") + P + "bin" + P + "validate.cmd ");
-        sb.append(scompTestFilesRoot + "xmlbeans_09.xsd_" + " " + scompTestFilesRoot + "xmlbeans_09.xml");
-        Process validator_proc = null;
-        try {
-            validator_proc = Runtime.getRuntime().exec(sb.toString());
-        } catch (NullPointerException npe) {
-            fail("test_jira_xmlbeans09() : Null Pointer Exception when running validate for schema");
-        }
-
-        System.out.println("cmd:" + sb);
-        BufferedInputStream inbuf = new BufferedInputStream(validator_proc.getInputStream());
-        BufferedReader reader = new BufferedReader(new InputStreamReader(inbuf));
-        String eachline = reader.readLine();
-        try {
-
-            while (reader.readLine() != null) {
-                System.out.println("output: " + eachline);
-            }
-        } catch (IOException ioe) {
-            ioe.getMessage();
-            ioe.printStackTrace();
-        }
-
-    }
-
-    /*
-    * [XMLBEANS-11]: Calling getUnionMemberTypes() on SchemaType for non-union types results in NullPointerException
-    * status : fixed
-    */
-    @Test
-    public void test_jira_xmlbeans11() throws Exception {
-
-        StringBuilder xsdAsString = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
-        xsdAsString.append(" <!-- W3C Schema generated by XML Spy v4.3 U (http://www.xmlspy.com)\n");
-        xsdAsString.append("  --> \n");
-        xsdAsString.append(" <xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualified\">\n");
-        xsdAsString.append("   <xs:simpleType name=\"restrictsString\">\n");
-        xsdAsString.append("      <xs:restriction base=\"xs:string\">\n");
-        xsdAsString.append("          <xs:length value=\"10\" /> \n");
-        xsdAsString.append("      </xs:restriction>\n");
-        xsdAsString.append("    </xs:simpleType>\n");
-        xsdAsString.append("  </xs:schema>");
-
-        // load schema file as SchemaDocument XmlObject
-        SchemaDocument sd = SchemaDocument.Factory.parse(xsdAsString.toString());
-
-        // compile loaded XmlObject
-        SchemaTypeSystem sts = XmlBeans.compileXsd((XmlObject[]) Collections.singletonList(sd).toArray(new XmlObject[]{}),
-                XmlBeans.getContextTypeLoader(),
-                new XmlOptions());
-        sts.resolve();
-
-        SchemaType[] st = sts.globalTypes();
-
-        System.out.println("NUMBER OF GLOBAL TYPES: " + st.length);
-
-        try {
-            for (int i = 0; i < st.length; i++)
-                    // check if it is union type
-            {
-                System.out.println("IS UNION TYPE: " + (st[i].getUnionMemberTypes() != null));
-            }
-        } catch (NullPointerException npe) {
-            fail("test_jira_xmlbeans11(): Null Pointer Exception thrown !");
-        }
-
-    }
-
-    /*
-    * [XMLBEANS-14]: newDomNode() throws NullPointerException
-    */
-    @Test
-    public void test_jira_xmlbeans14() throws Exception {
-        XmlObject xObj = XmlObject.Factory.parse("<Baz/>");
-        // add element
-        XmlCursor xCursor = xObj.newCursor();
-        xCursor.toFirstContentToken();
-        xCursor.insertElementWithText(new QName("Some uri", "SomeName"), "SomeValue");
-        xCursor.insertElementWithText(new QName("Some uri", "SomeName1"), "SomeValue1");
-        xCursor.dispose();
-
-        // debug
-        xObj.save(System.out);
-
-        // throws npe in v1
-        try {
-            xObj.newDomNode();
-        } catch (NullPointerException npe) {
-            fail("test_jira_xmlbeans14() : Null Pointer Exception when create Dom Node");
-        }
-
-    }
-
-
-    /*
-    * [XMLBEANS-16]: newDomNode creates a DOM with empty strings for namespace URIs for unprefixed
-    * attributes (rather than null)
-    * status : fails with crimson and not with Xerces
-    */
-    @Test
-    @Ignore("still happens with current xerces 2.11")
-    public void test_jira_xmlbeans16() throws Exception {
-        StringBuilder sb = new StringBuilder(100);
-        sb.append("<?xml version='1.0'?>\n");
-        sb.append("<test noprefix='nonamespace' \n");
-        sb.append("      ns:prefix='namespace' \n");
-        sb.append("      xmlns:ns='http://xml.apache.org/xmlbeans'>value</test>");
-
-        // Parse it using XMLBeans
-        XmlObject xdoc = XmlObject.Factory.parse(sb.toString());
-
-        // Convert to a DOM Element
-        Element firstChild = (Element) xdoc.newDomNode().getFirstChild();
-
-        // We expect to find a null namespace for the first attribute and 'ns' for the second
-        NamedNodeMap attributes = firstChild.getAttributes();
-        System.out.println("Prefix for attr noprefix is:" + attributes.getNamedItem("noprefix").getPrefix() + ":");
-        assertNull("Expected null namespace for attribute noprefix", attributes.getNamedItem("noprefix").getPrefix());
-        assertEquals("Wrong namespace for attribute prefix", "ns", attributes.getNamedItem("ns:prefix").getPrefix());
-
-        // We should be able to lookup 'prefix' by specifying the appropriate URI
-        String prefix = firstChild.getAttributeNS("http://xml.apache.org/xmlbeans", "prefix");
-        assertEquals("Wrong value for prefixed attribute", "namespace", prefix);
-
-        // And 'noprefix' by specifying a null namespace URI
-        String noprefix = firstChild.getAttributeNS(null, "noprefix");
-        assertEquals("Wrong value for unprefixed attribute", "nonamespace", noprefix); // This assertion fails under Crimson
-
-    }
-
-    /*
-    * [XMLBEANS-33]:  insertions occur in improper order when subclassing schema types
-    */
-    @Test
-    public void test_jira_xmlbeans33() throws Exception {
-
-        xbeansJira33B.SubjectType subject =
-                xbeansJira33B.SubjectType.Factory.newInstance();
-        subject.addNewIDPProvidedNameIdentifier();
-        subject.addNewSubjectConfirmation().addConfirmationMethod("foo");
-        subject.addNewNameIdentifier();
-        XmlOptions options = new XmlOptions();
-        ArrayList list = new ArrayList();
-        options.setErrorListener(list);
-
-        boolean bResult = subject.validate(options);
-        System.out.println(bResult ? "valid" : "invalid");
-
-        // print out errors
-        for (int i = 0; i < list.size(); i++) {
-            System.out.println("Validation Error : " + list.get(i));
-        }
-        assertTrue("Validation Failed, should pass", bResult);
-
-    }
-
-    /*
-    * [XMLBEANS-34]:  error compiling classes when using a schema with a redefined subelement
-    */
-    @Test
-    public void test_jira_xmlbeans34() throws Exception {
-        List errors = new ArrayList();
-
-        Parameters params = new Parameters();
-        params.setXsdFiles(new File[]{new File(scompTestFilesRoot + "xmlbeans_34b.xsd_")});
-        params.setErrorListener(errors);
-        params.setSrcDir(schemaCompSrcDir);
-        params.setClassesDir(schemaCompClassesDir);
-        params.setDownload(true);
-        params.setNoPvr(true);
-
-        SchemaCompiler.compile(params);
-        if (printOptionErrMsgs(errors)) {
-            fail("test_jira_xmlbeans34() : Errors found when executing scomp");
-        }
-
-    }
-
-
-    /**
-     * BUGBUG: [XMLBEANS-38]
-     * [XMLBEANS-38]   Does not support xs:key (keyRef NoIllegalEntries)
-     */
-    public void test_jira_xmlbeans38() throws Exception {
-        String keyrefXSD = "<?xml version=\"1.0\"?>" +
-                "<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
-                "<xsd:element name=\"supermarket\">" +
-                "<xsd:complexType>" +
-                "<xsd:sequence> " +
-                "<xsd:element name=\"aisle\" maxOccurs=\"unbounded\"> \n" +
-                "<xsd:complexType> " +
-                "<xsd:sequence>" +
-                "<xsd:element name=\"item\" maxOccurs=\"unbounded\"> \n" +
-                "<xsd:complexType> " +
-                "<xsd:simpleContent>" +
-                "<xsd:extension base=\"xsd:string\"> \n" +
-                "<xsd:attribute name=\"code\" type=\"xsd:positiveInteger\"/> \n" +
-                "<xsd:attribute name=\"quantity\" type=\"xsd:positiveInteger\"/> \n" +
-                "<xsd:attribute name=\"price\" type=\"xsd:decimal\"/> \n" +
-                "</xsd:extension> \n" +
-                "</xsd:simpleContent> \n" +
-                "</xsd:complexType> \n" +
-                "</xsd:element> \n" +
-                "</xsd:sequence> \n" + //"<!-- Attribute Of Aisle --> \n" +
-                "<xsd:attribute name=\"name\" type=\"xsd:string\"/> \n" +
-                "<xsd:attribute name=\"number\" type=\"xsd:positiveInteger\"/> \n" + //"<!-- Of Aisle --> \n" +
-                "</xsd:complexType> \n" +
-                "<xsd:keyref name=\"NoIllegalEntries\" refer=\"itemKey\"> \n" +
-                "<xsd:selector xpath=\"item\"/> \n" +
-                "<xsd:field xpath=\"@code\"/> \n" +
-                "</xsd:keyref> \n" +
-                "</xsd:element> \n" +
-                "<xsd:element name=\"items\"> \n" +
-                "<xsd:complexType> \n" +
-                "<xsd:sequence> \n" +
-                "<xsd:element name=\"item\" maxOccurs=\"unbounded\"> \n" +
-                "<xsd:complexType> \n" +
-                "<xsd:simpleContent> \n" +
-                "<xsd:extension base=\"xsd:string\"> \n" +
-                "<xsd:attribute name=\"code\" type=\"xsd:positiveInteger\"/> \n" +
-                "</xsd:extension> \n" +
-                "</xsd:simpleContent> \n" +
-                "</xsd:complexType> \n" +
-                "</xsd:element> \n" +
-                "</xsd:sequence> \n" +
-                "</xsd:complexType> \n" +
-                "</xsd:element> \n" +
-                "</xsd:sequence> \n" +
-                "<xsd:attribute name=\"name\" type=\"xsd:string\"/> \n" +
-                "</xsd:complexType> \n" +
-                "<xsd:key name=\"itemKey\"> \n" +
-                "<xsd:selector xpath=\"items/item\"/> \n" +
-                "<xsd:field xpath=\"@code\"/> \n" +
-                "</xsd:key> \n" +
-                "</xsd:element> \n" +
-                "</xsd:schema>";
-
-
-        String keyRefInstance = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
-                "<supermarket xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"C:\\tmp\\Supermarket.xsd\" name=\"String\"> \n" +
-                "<aisle name=\"String\" number=\"2\"> \n" +
-                "<item code=\"1234\" quantity=\"2\" price=\"3.1415926535897932384626433832795\">String</item> \n" +
-                "</aisle> \n" +
-                "<items> \n" +
-                "<item code=\"1234\">Java</item> \n" +
-                "</items> \n" +
-                "</supermarket>";
-
-        validateInstance(new String[]{keyrefXSD}, new String[]{keyRefInstance}, null);
-    }
-
-
-    /**
-     * Loads the class at runtime and inspects for appropriate methods
-     * Statically using methods (class.getGeneration()) would stop build
-     * if the bug resurfaced.
-     * <p/>
-     * [XMLBEANS-45]   <xsd:redefine> tag is not supported
-     */
-    public void test_jira_XmlBeans45() throws Exception {
-        //this class is built during the build.schemas target
-        Class cls = Class.forName("xmlbeans45.PersonName");
-        //check for methods in class
-        //getGeneration()
-        if (cls.getMethod("getGeneration") == null)
-            throw new Exception("getGeneration() was not found in class");
-        //getTitle()
-        if (cls.getMethod("getTitle") == null)
-            throw new Exception("getTitle() was not found in class");
-        //getForenameArray()
-        if (cls.getMethod("getForenameArray") == null)
-            throw new Exception("getForenameArray() was not found in class");
-
-    }
-
-    /**
-     * Could not Repro this
-     * [XMLBEANS-46] Regex validation fails in multi-threaded, multi-processor environment
-     */
-    public void test_jira_XmlBeans46() throws Exception {
-        RegexThread[] threads = new RegexThread[45];
-
-        for (int i = 0; i < threads.length; i++) {
-            threads[i] = new RegexThread();
-            System.out.println("Thread[" + i + "]-starting ");
-            threads[i].start();
-        }
-
-        Thread.sleep(6000);
-        System.out.println("Done with RegEx Threading Test...");
-
-        StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < threads.length; i++) {
-            if (threads[i].getException() != null)
-                sb.append(threads[i].getException().getMessage() + "\n");
-        }
-
-        if (sb.length() > 0)
-            throw new Exception("Threaded Regex Validation Failed\n" + sb.toString());
-    }
-
-
-    /**
-     * Incorrect XML
-     * [XMLBEANS-48]   Bug with Root.fetch ( Splay parent, QName name, QNameSet set, int n )
-     */
-    public void test_jira_XmlBeans48() throws Exception {
-        String incorrectXml = "<sch:Feed xmlns:sch=\"http://xmlbeans_48\">" +
-                "<sch:Feed>" +
-                "<sch:Location>http://xmlbeans.apache.org</sch:Location>" +
-                "<sch:TimeEntered>2004-08-11T15:50:23.064-04:00</sch:TimeEntered>" +
-                "</sch:Feed>" +
-                "</sch:Feed>";
-
-        xmlbeans48.FeedDocument feedDoc = (xmlbeans48.FeedDocument) XmlObject.Factory.parse(incorrectXml);
-        FeedInfoType feedInfoType = feedDoc.getFeed();
-        String location = feedInfoType.getLocation();
-        System.out.println("Location: " + location);
-        if (location != null)
-            throw new Exception("Location value should not have been populated");
-
-        String correctXml = "<sch:Feed xmlns:sch=\"http://xmlbeans_48\">" +
-                "<sch:Location>http://xmlbeans.apache.org</sch:Location>" +
-                "<sch:TimeEntered>2004-08-11T15:50:23.064-04:00</sch:TimeEntered>" +
-                "</sch:Feed>";
-
-        feedDoc = (xmlbeans48.FeedDocument) XmlObject.Factory.parse(correctXml);
-        feedInfoType = feedDoc.getFeed();
-        location = feedInfoType.getLocation();
-        System.out.println("Location: " + location);
-        if (location == null)
-            throw new Exception("Location value should have been populated");
-    }
-
-    /*
-    * [XMLBEANS-49]: Schema compiler won't compile portlet.xsd from jsr168/pluto
-    *
-    */
-    public void test_jira_xmlbeans49() {
-        List errors = new ArrayList();
-        Parameters params = new Parameters();
-        params.setXsdFiles(new File[]{new File(scompTestFilesRoot + "xmlbeans_49.xsd_")});
-        params.setErrorListener(errors);
-        params.setSrcDir(schemaCompSrcDir);
-        params.setClassesDir(schemaCompClassesDir);
-
-        // needs network downloads enabled
-        params.setDownload(true);
-
-        try {
-            SchemaCompiler.compile(params);
-        } catch (Exception ex) {
-            if (!errors.isEmpty()) {
-                for (Iterator itr = errors.iterator(); itr.hasNext();) {
-                    System.out.println("scomp errors: ");
-                }
-            }
-
-            fail("test_jira_xmlbeans49() :Exception thrown with above errors!");
-        }
-
-        // view errors
-        if (printOptionErrMsgs(errors)) {
-            fail("test_jira_xmlbeans49() : Errors found when executing scomp");
-        }
-    }
-
-    /**
-     * For Testing jira issue 46
-     */
-    public static class RegexThread extends TestThread
-    {
-        private xmlbeans46.UsPhoneNumberDocument phone;
-        Random rand;
-
-        public RegexThread()
-        {
-            super();
-            phone = xmlbeans46.UsPhoneNumberDocument.Factory.newInstance();
-            rand = new Random();
-        }
-
-        /**
-         * Validates a type that uses the following pattern
-         * <xs:restriction base="xs:string">
-         * <xs:pattern value="\d{3}\-\d{3}\-\d{4}"/>
-         * </xs:restriction>
-         */
-        public void run()
-        {
-            try {
-
-                for (int i = 0; i < 9; i++) {
-                    int pre = rand.nextInt(999);
-                    int mid = rand.nextInt(999);
-                    int post = rand.nextInt(9999);
-                    String testVal = ((pre > 100) ? String.valueOf(pre) : "128") + "-" +
-                            ((mid > 100) ? String.valueOf(mid) : "256") + "-" +
-                            ((post > 1000) ? String.valueOf(post) : "1024");
-
-                    String xmlData = "<xb:usPhoneNumber xmlns:xb=\"http://xmlbeans_46\">" +
-                            testVal +
-                            "</xb:usPhoneNumber>";
-                    //cannot repro using this method
-                    //phone.setUsPhoneNumber(testVal);
-                    //if (!phone.validate(xm)) {
-                    //    _throwable = new Throwable("Multi Threaded Regular " +
-                    //            "Expression did not validate - " + testVal);
-                    //    if (errors != null && errors.size() > 0)
-                    //        System.err.println("ERROR: " + errors);
-                    //}
-
-                    boolean validated = parseAndValidate(xmlData);
-                    if (!validated) {
-                        System.out.println("Not Valid!!!");
-                    }
-                    System.out.println("Validated " + testVal + " successfully ");
-                }
-                _result = true;
-
-            } catch (Throwable t) {
-                _throwable = t;
-                t.printStackTrace();
-            }
-        }
-
-        private boolean parseAndValidate(String val) throws XmlException
-        {
-            xmlbeans46.UsPhoneNumberDocument xml = xmlbeans46.UsPhoneNumberDocument.Factory.parse(val);
-            return validate(xml);
-        }
-
-        private boolean validate(xmlbeans46.UsPhoneNumberDocument rdd)
-        {
-            Collection errors = new ArrayList();
-            XmlOptions validateOptions = new XmlOptions();
-            validateOptions.setErrorListener(errors);
-            boolean valid = rdd.validate(validateOptions);
-            if (!valid) {
-                for (Iterator iterator = errors.iterator(); iterator.hasNext();) {
-                    XmlError xmlError = (XmlError) iterator.next();
-                    System.out.println("XML Error - " + xmlError.getMessage() + " at\n" + xmlError.getCursorLocation().xmlText());
-                }
-
-            }
-            return valid;
-        }
-    }
-}
+/*   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package misc.detailed;
+
+import misc.common.JiraTestBase;
+import org.apache.xmlbeans.*;
+import org.apache.xmlbeans.impl.tool.Parameters;
+import org.apache.xmlbeans.impl.tool.SchemaCompiler;
+import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import xmlbeans48.FeedInfoType;
+
+import javax.xml.namespace.QName;
+import java.io.*;
+import java.util.*;
+
+import static org.junit.Assert.*;
+
+public class JiraRegression1_50Test extends JiraTestBase {
+
+    /*
+    * [XMLBEANS-2] Problem with XmlError.forObject(String,int,XmlObject)
+    */
+    @Test
+    public void test_jira_xmlbeans02() throws Exception {
+        StringBuilder xmlstringbuf = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
+        xmlstringbuf.append("<test>");
+        xmlstringbuf.append("<testchild attr=\"abcd\"> Jira02 </testchild>");
+        xmlstringbuf.append("</test>");
+
+        XmlObject myxmlobj = null;
+        List errors = new ArrayList();
+        XmlOptions options = new XmlOptions().setErrorListener(errors);
+        try {
+            myxmlobj = XmlObject.Factory.parse(xmlstringbuf.toString(), options);
+            XmlCursor cur = myxmlobj.newCursor();
+            XmlError xmlerr = XmlError.forObject("This is my custom error message", XmlError.SEVERITY_ERROR, myxmlobj);
+
+            // call an API on the cursor : verification of cursor not being disposed
+            System.out.println("Cursor Text Value: " + cur.getTextValue());
+
+        } catch (XmlException xme) {
+            if (!xme.getErrors().isEmpty()) {
+                for (Iterator itr = xme.getErrors().iterator(); itr.hasNext();) {
+                    System.out.println("Parse Errors :" + itr.next());
+                }
+            }
+
+        } catch (NullPointerException npe) {
+            fail("test_jira_xmlbeans02() : Null Pointer Exception thrown !");
+        }
+
+        printOptionErrMsgs(errors);
+    }
+
+    /*
+    * [XMLBEANS-4] xs:decimal size greater than 18 results in uncompilable java code
+    */
+    @Test
+    public void test_jira_xmlbeans04() {
+        List errors = new ArrayList();
+
+        Parameters params = new Parameters();
+        params.setXsdFiles(new File[]{new File(scompTestFilesRoot + "xmlbeans_04.xsd_")});
+        params.setErrorListener(errors);
+        params.setSrcDir(schemaCompSrcDir);
+        params.setClassesDir(schemaCompClassesDir);
+
+        SchemaCompiler.compile(params);
+        if (printOptionErrMsgs(errors)) {
+            fail("test_jira_xmlbeans04() : Errors found when executing scomp");
+        }
+    }
+
+
+
+    /*
+    * [XMLBEANS-9] Null Pointer Exception when running validate from cmd line
+    */
+    @Test
+    @Ignore("no shell tests on junit")
+    public void test_jira_xmlbeans09() throws Exception {
+        // Exec validate script from cmd line - Refer xmlbeans_09.xsd, xmlbeans_09.xml
+
+        StringBuilder sb = new StringBuilder(" ");
+        sb.append(System.getProperty("xbean.rootdir") + P + "bin" + P + "validate.cmd ");
+        sb.append(scompTestFilesRoot + "xmlbeans_09.xsd_" + " " + scompTestFilesRoot + "xmlbeans_09.xml");
+        Process validator_proc = null;
+        try {
+            validator_proc = Runtime.getRuntime().exec(sb.toString());
+        } catch (NullPointerException npe) {
+            fail("test_jira_xmlbeans09() : Null Pointer Exception when running validate for schema");
+        }
+
+        System.out.println("cmd:" + sb);
+        BufferedInputStream inbuf = new BufferedInputStream(validator_proc.getInputStream());
+        BufferedReader reader = new BufferedReader(new InputStreamReader(inbuf));
+        String eachline = reader.readLine();
+        try {
+
+            while (reader.readLine() != null) {
+                System.out.println("output: " + eachline);
+            }
+        } catch (IOException ioe) {
+            ioe.getMessage();
+            ioe.printStackTrace();
+        }
+
+    }
+
+    /*
+    * [XMLBEANS-11]: Calling getUnionMemberTypes() on SchemaType for non-union types results in NullPointerException
+    * status : fixed
+    */
+    @Test
+    public void test_jira_xmlbeans11() throws Exception {
+
+        StringBuilder xsdAsString = new StringBuilder("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
+        xsdAsString.append(" <!-- W3C Schema generated by XML Spy v4.3 U (http://www.xmlspy.com)\n");
+        xsdAsString.append("  --> \n");
+        xsdAsString.append(" <xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualified\">\n");
+        xsdAsString.append("   <xs:simpleType name=\"restrictsString\">\n");
+        xsdAsString.append("      <xs:restriction base=\"xs:string\">\n");
+        xsdAsString.append("          <xs:length value=\"10\" /> \n");
+        xsdAsString.append("      </xs:restriction>\n");
+        xsdAsString.append("    </xs:simpleType>\n");
+        xsdAsString.append("  </xs:schema>");
+
+        // load schema file as SchemaDocument XmlObject
+        SchemaDocument sd = SchemaDocument.Factory.parse(xsdAsString.toString());
+
+        // compile loaded XmlObject
+        SchemaTypeSystem sts = XmlBeans.compileXsd((XmlObject[]) Collections.singletonList(sd).toArray(new XmlObject[]{}),
+                XmlBeans.getContextTypeLoader(),
+                new XmlOptions());
+        sts.resolve();
+
+        SchemaType[] st = sts.globalTypes();
+
+        System.out.println("NUMBER OF GLOBAL TYPES: " + st.length);
+
+        try {
+            for (int i = 0; i < st.length; i++)
+                    // check if it is union type
+            {
+                System.out.println("IS UNION TYPE: " + (st[i].getUnionMemberTypes() != null));
+            }
+        } catch (NullPointerException npe) {
+            fail("test_jira_xmlbeans11(): Null Pointer Exception thrown !");
+        }
+
+    }
+
+    /*
+    * [XMLBEANS-14]: newDomNode() throws NullPointerException
+    */
+    @Test
+    public void test_jira_xmlbeans14() throws Exception {
+        XmlObject xObj = XmlObject.Factory.parse("<Baz/>");
+        // add element
+        XmlCursor xCursor = xObj.newCursor();
+        xCursor.toFirstContentToken();
+        xCursor.insertElementWithText(new QName("Some uri", "SomeName"), "SomeValue");
+        xCursor.insertElementWithText(new QName("Some uri", "SomeName1"), "SomeValue1");
+        xCursor.dispose();
+
+        // debug
+        xObj.save(System.out);
+
+        // throws npe in v1
+        try {
+            xObj.newDomNode();
+        } catch (NullPointerException npe) {
+            fail("test_jira_xmlbeans14() : Null Pointer Exception when create Dom Node");
+        }
+
+    }
+
+
+    /*
+    * [XMLBEANS-16]: newDomNode creates a DOM with empty strings for namespace URIs for unprefixed
+    * attributes (rather than null)
+    * status : fails with crimson and not with Xerces
+    */
+    @Test
+    @Ignore("still happens with current xerces 2.11")
+    public void test_jira_xmlbeans16() throws Exception {
+        StringBuilder sb = new StringBuilder(100);
+        sb.append("<?xml version='1.0'?>\n");
+        sb.append("<test noprefix='nonamespace' \n");
+        sb.append("      ns:prefix='namespace' \n");
+        sb.append("      xmlns:ns='http://xml.apache.org/xmlbeans'>value</test>");
+
+        // Parse it using XMLBeans
+        XmlObject xdoc = XmlObject.Factory.parse(sb.toString());
+
+        // Convert to a DOM Element
+        Element firstChild = (Element) xdoc.newDomNode().getFirstChild();
+
+        // We expect to find a null namespace for the first attribute and 'ns' for the second
+        NamedNodeMap attributes = firstChild.getAttributes();
+        System.out.println("Prefix for attr noprefix is:" + attributes.getNamedItem("noprefix").getPrefix() + ":");
+        assertNull("Expected null namespace for attribute noprefix", attributes.getNamedItem("noprefix").getPrefix());
+        assertEquals("Wrong namespace for attribute prefix", "ns", attributes.getNamedItem("ns:prefix").getPrefix());
+
+        // We should be able to lookup 'prefix' by specifying the appropriate URI
+        String prefix = firstChild.getAttributeNS("http://xml.apache.org/xmlbeans", "prefix");
+        assertEquals("Wrong value for prefixed attribute", "namespace", prefix);
+
+        // And 'noprefix' by specifying a null namespace URI
+        String noprefix = firstChild.getAttributeNS(null, "noprefix");
+        assertEquals("Wrong value for unprefixed attribute", "nonamespace", noprefix); // This assertion fails under Crimson
+
+    }
+
+    /*
+    * [XMLBEANS-33]:  insertions occur in improper order when subclassing schema types
+    */
+    @Test
+    public void test_jira_xmlbeans33() throws Exception {
+
+        xbeansJira33B.SubjectType subject =
+                xbeansJira33B.SubjectType.Factory.newInstance();
+        subject.addNewIDPProvidedNameIdentifier();
+        subject.addNewSubjectConfirmation().addConfirmationMethod("foo");
+        subject.addNewNameIdentifier();
+        XmlOptions options = new XmlOptions();
+        ArrayList list = new ArrayList();
+        options.setErrorListener(list);
+
+        boolean bResult = subject.validate(options);
+        System.out.println(bResult ? "valid" : "invalid");
+
+        // print out errors
+        for (int i = 0; i < list.size(); i++) {
+            System.out.println("Validation Error : " + list.get(i));
+        }
+        assertTrue("Validation Failed, should pass", bResult);
+
+    }
+
+    /*
+    * [XMLBEANS-34]:  error compiling classes when using a schema with a redefined subelement
+    */
+    @Test
+    public void test_jira_xmlbeans34() throws Exception {
+        List errors = new ArrayList();
+
+        Parameters params = new Parameters();
+        params.setXsdFiles(new File[]{new File(scompTestFilesRoot + "xmlbeans_34b.xsd_")});
+        params.setErrorListener(errors);
+        params.setSrcDir(schemaCompSrcDir);
+        params.setClassesDir(schemaCompClassesDir);
+        params.setDownload(true);
+        params.setNoPvr(true);
+
+        SchemaCompiler.compile(params);
+        if (printOptionErrMsgs(errors)) {
+            fail("test_jira_xmlbeans34() : Errors found when executing scomp");
+        }
+
+    }
+
+
+    /**
+     * BUGBUG: [XMLBEANS-38]
+     * [XMLBEANS-38]   Does not support xs:key (keyRef NoIllegalEntries)
+     */
+    public void test_jira_xmlbeans38() throws Exception {
+        String keyrefXSD = "<?xml version=\"1.0\"?>" +
+                "<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
+                "<xsd:element name=\"supermarket\">" +
+                "<xsd:complexType>" +
+                "<xsd:sequence> " +
+                "<xsd:element name=\"aisle\" maxOccurs=\"unbounded\"> \n" +
+                "<xsd:complexType> " +
+                "<xsd:sequence>" +
+                "<xsd:element name=\"item\" maxOccurs=\"unbounded\"> \n" +
+                "<xsd:complexType> " +
+                "<xsd:simpleContent>" +
+                "<xsd:extension base=\"xsd:string\"> \n" +
+                "<xsd:attribute name=\"code\" type=\"xsd:positiveInteger\"/> \n" +
+                "<xsd:attribute name=\"quantity\" type=\"xsd:positiveInteger\"/> \n" +
+                "<xsd:attribute name=\"price\" type=\"xsd:decimal\"/> \n" +
+                "</xsd:extension> \n" +
+                "</xsd:simpleContent> \n" +
+                "</xsd:complexType> \n" +
+                "</xsd:element> \n" +
+                "</xsd:sequence> \n" + //"<!-- Attribute Of Aisle --> \n" +
+                "<xsd:attribute name=\"name\" type=\"xsd:string\"/> \n" +
+                "<xsd:attribute name=\"number\" type=\"xsd:positiveInteger\"/> \n" + //"<!-- Of Aisle --> \n" +
+                "</xsd:complexType> \n" +
+                "<xsd:keyref name=\"NoIllegalEntries\" refer=\"itemKey\"> \n" +
+                "<xsd:selector xpath=\"item\"/> \n" +
+                "<xsd:field xpath=\"@code\"/> \n" +
+                "</xsd:keyref> \n" +
+                "</xsd:element> \n" +
+                "<xsd:element name=\"items\"> \n" +
+                "<xsd:complexType> \n" +
+                "<xsd:sequence> \n" +
+                "<xsd:element name=\"item\" maxOccurs=\"unbounded\"> \n" +
+                "<xsd:complexType> \n" +
+                "<xsd:simpleContent> \n" +
+                "<xsd:extension base=\"xsd:string\"> \n" +
+                "<xsd:attribute name=\"code\" type=\"xsd:positiveInteger\"/> \n" +
+                "</xsd:extension> \n" +
+                "</xsd:simpleContent> \n" +
+                "</xsd:complexType> \n" +
+                "</xsd:element> \n" +
+                "</xsd:sequence> \n" +
+                "</xsd:complexType> \n" +
+                "</xsd:element> \n" +
+                "</xsd:sequence> \n" +
+                "<xsd:attribute name=\"name\" type=\"xsd:string\"/> \n" +
+                "</xsd:complexType> \n" +
+                "<xsd:key name=\"itemKey\"> \n" +
+                "<xsd:selector xpath=\"items/item\"/> \n" +
+                "<xsd:field xpath=\"@code\"/> \n" +
+                "</xsd:key> \n" +
+                "</xsd:element> \n" +
+                "</xsd:schema>";
+
+
+        String keyRefInstance = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +
+                "<supermarket xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"C:\\tmp\\Supermarket.xsd\" name=\"String\"> \n" +
+                "<aisle name=\"String\" number=\"2\"> \n" +
+                "<item code=\"1234\" quantity=\"2\" price=\"3.1415926535897932384626433832795\">String</item> \n" +
+                "</aisle> \n" +
+                "<items> \n" +
+                "<item code=\"1234\">Java</item> \n" +
+                "</items> \n" +
+                "</supermarket>";
+
+        validateInstance(new String[]{keyrefXSD}, new String[]{keyRefInstance}, null);
+    }
+
+
+    /**
+     * Loads the class at runtime and inspects for appropriate methods
+     * Statically using methods (class.getGeneration()) would stop build
+     * if the bug resurfaced.
+     * <p/>
+     * [XMLBEANS-45]   <xsd:redefine> tag is not supported
+     */
+    public void test_jira_XmlBeans45() throws Exception {
+        //this class is built during the build.schemas target
+        Class cls = Class.forName("xmlbeans45.PersonName");
+        //check for methods in class
+        //getGeneration()
+        if (cls.getMethod("getGeneration") == null)
+            throw new Exception("getGeneration() was not found in class");
+        //getTitle()
+        if (cls.getMethod("getTitle") == null)
+            throw new Exception("getTitle() was not found in class");
+        //getForenameArray()
+        if (cls.getMethod("getForenameArray") == null)
+            throw new Exception("getForenameArray() was not found in class");
+
+    }
+
+    /**
+     * Could not Repro this
+     * [XMLBEANS-46] Regex validation fails in multi-threaded, multi-processor environment
+     */
+    public void test_jira_XmlBeans46() throws Exception {
+        RegexThread[] threads = new RegexThread[45];
+
+        for (int i = 0; i < threads.length; i++) {
+            threads[i] = new RegexThread();
+            System.out.println("Thread[" + i + "]-starting ");
+            threads[i].start();
+        }
+
+        Thread.sleep(6000);
+        System.out.println("Done with RegEx Threading Test...");
+
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < threads.length; i++) {
+            if (threads[i].getException() != null)
+                sb.append(threads[i].getException().getMessage() + "\n");
+        }
+
+        if (sb.length() > 0)
+            throw new Exception("Threaded Regex Validation Failed\n" + sb.toString());
+    }
+
+
+    /**
+     * Incorrect XML
+     * [XMLBEANS-48]   Bug with Root.fetch ( Splay parent, QName name, QNameSet set, int n )
+     */
+    public void test_jira_XmlBeans48() throws Exception {
+        String incorrectXml = "<sch:Feed xmlns:sch=\"http://xmlbeans_48\">" +
+                "<sch:Feed>" +
+                "<sch:Location>http://xmlbeans.apache.org</sch:Location>" +
+                "<sch:TimeEntered>2004-08-11T15:50:23.064-04:00</sch:TimeEntered>" +
+                "</sch:Feed>" +
+                "</sch:Feed>";
+
+        xmlbeans48.FeedDocument feedDoc = (xmlbeans48.FeedDocument) XmlObject.Factory.parse(incorrectXml);
+        FeedInfoType feedInfoType = feedDoc.getFeed();
+        String location = feedInfoType.getLocation();
+        System.out.println("Location: " + location);
+        if (location != null)
+            throw new Exception("Location value should not have been populated");
+
+        String correctXml = "<sch:Feed xmlns:sch=\"http://xmlbeans_48\">" +
+                "<sch:Location>http://xmlbeans.apache.org</sch:Location>" +
+                "<sch:TimeEntered>2004-08-11T15:50:23.064-04:00</sch:TimeEntered>" +
+                "</sch:Feed>";
+
+        feedDoc = (xmlbeans48.FeedDocument) XmlObject.Factory.parse(correctXml);
+        feedInfoType = feedDoc.getFeed();
+        location = feedInfoType.getLocation();
+        System.out.println("Location: " + location);
+        if (location == null)
+            throw new Exception("Location value should have been populated");
+    }
+
+    /*
+    * [XMLBEANS-49]: Schema compiler won't compile portlet.xsd from jsr168/pluto
+    *
+    */
+    public void test_jira_xmlbeans49() {
+        List errors = new ArrayList();
+        Parameters params = new Parameters();
+        params.setXsdFiles(new File[]{new File(scompTestFilesRoot + "xmlbeans_49.xsd_")});
+        params.setErrorListener(errors);
+        params.setSrcDir(schemaCompSrcDir);
+        params.setClassesDir(schemaCompClassesDir);
+
+        // needs network downloads enabled
+        params.setDownload(true);
+
+        try {
+            SchemaCompiler.compile(params);
+        } catch (Exception ex) {
+            if (!errors.isEmpty()) {
+                for (Iterator itr = errors.iterator(); itr.hasNext();) {
+                    System.out.println("scomp errors: ");
+                }
+            }
+
+            fail("test_jira_xmlbeans49() :Exception thrown with above errors!");
+        }
+
+        // view errors
+        if (printOptionErrMsgs(errors)) {
+            fail("test_jira_xmlbeans49() : Errors found when executing scomp");
+        }
+    }
+
+    /**
+     * For Testing jira issue 46
+     */
+    public static class RegexThread extends TestThread
+    {
+        private xmlbeans46.UsPhoneNumberDocument phone;
+        Random rand;
+
+        public RegexThread()
+        {
+            super();
+            phone = xmlbeans46.UsPhoneNumberDocument.Factory.newInstance();
+            rand = new Random();
+        }
+
+        /**
+         * Validates a type that uses the following pattern
+         * <xs:restriction base="xs:string">
+         * <xs:pattern value="\d{3}\-\d{3}\-\d{4}"/>
+         * </xs:restriction>
+         */
+        public void run()
+        {
+            try {
+
+                for (int i = 0; i < 9; i++) {
+                    int pre = rand.nextInt(999);
+                    int mid = rand.nextInt(999);
+                    int post = rand.nextInt(9999);
+                    String testVal = ((pre > 100) ? String.valueOf(pre) : "128") + "-" +
+                            ((mid > 100) ? String.valueOf(mid) : "256") + "-" +
+                            ((post > 1000) ? String.valueOf(post) : "1024");
+
+                    String xmlData = "<xb:usPhoneNumber xmlns:xb=\"http://xmlbeans_46\">" +
+                            testVal +
+                            "</xb:usPhoneNumber>";
+                    //cannot repro using this method
+                    //phone.setUsPhoneNumber(testVal);
+                    //if (!phone.validate(xm)) {
+                    //    _throwable = new Throwable("Multi Threaded Regular " +
+                    //            "Expression did not validate - " + testVal);
+                    //    if (errors != null && errors.size() > 0)
+                    //        System.err.println("ERROR: " + errors);
+                    //}
+
+                    boolean validated = parseAndValidate(xmlData);
+                    if (!validated) {
+                        System.out.println("Not Valid!!!");
+                    }
+                    System.out.println("Validated " + testVal + " successfully ");
+                }
+                _result = true;
+
+            } catch (Throwable t) {
+                _throwable = t;
+                t.printStackTrace();
+            }
+        }
+
+        private boolean parseAndValidate(String val) throws XmlException
+        {
+            xmlbeans46.UsPhoneNumberDocument xml = xmlbeans46.UsPhoneNumberDocument.Factory.parse(val);
+            return validate(xml);
+        }
+
+        private boolean validate(xmlbeans46.UsPhoneNumberDocument rdd)
+        {
+            Collection errors = new ArrayList();
+            XmlOptions validateOptions = new XmlOptions();
+            validateOptions.setErrorListener(errors);
+            boolean valid = rdd.validate(validateOptions);
+            if (!valid) {
+                for (Iterator iterator = errors.iterator(); iterator.hasNext();) {
+                    XmlError xmlError = (XmlError) iterator.next();
+                    System.out.println("XML Error - " + xmlError.getMessage() + " at\n" + xmlError.getCursorLocation().xmlText());
+                }
+
+            }
+            return valid;
+        }
+    }
+}

Modified: xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression201_250Test.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression201_250Test.java?rev=1886772&r1=1886771&r2=1886772&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression201_250Test.java (original)
+++ xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression201_250Test.java Sun Feb 21 21:48:26 2021
@@ -1,117 +1,117 @@
-/*
- *   Copyright 2004 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package misc.detailed;
-
-import jira.xmlbeans228.substitution.CommentType;
-import jira.xmlbeans228.substitution.FirstCommentType;
-import jira.xmlbeans228.substitution.PersonDocument;
-import misc.common.JiraTestBase;
-import misc.detailed.jira208.FrogBreathDocument;
-import org.apache.xmlbeans.XmlOptions;
-import org.junit.Test;
-
-import javax.xml.namespace.QName;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import static org.junit.Assert.*;
-
-public class JiraRegression201_250Test extends JiraTestBase {
-
-    /*
-    * [XMLBEANS-206]: Wrong method finding in getMethod() of InterfaceExtensionImpl
-    *
-    */
-    // Refer test case xmlobject.extensions.interfaceFeature.averageCase.checkin.testJiraXMLBEANS_206
-
-    /*
-    * [XMLBEANS-208]: validation of decimal with fractionDigits -- special case, additional zero digits
-    *
-    */
-    @Test
-    public void test_jira_xmlbeans208() throws Exception {
-
-        XmlOptions options = new XmlOptions();
-        List err = new ArrayList();
-        options.setErrorListener(err);
-
-        // decimal value invalid
-        FrogBreathDocument invalidDoc = FrogBreathDocument.Factory.parse("<dec:frog_breath xmlns:dec=\"http://misc/detailed/jira208\">1000.000001</dec:frog_breath>");
-        boolean valid = invalidDoc.validate(options);
-        if(!valid)
-        {
-            for (Iterator iterator = err.iterator(); iterator.hasNext();) {
-                System.out.println("Validation Error (invalid doc):" + iterator.next());
-            }
-        }
-        // expected to fail
-        assertFalse(valid);
-
-        // decimal value with trailing zeros tagged as invalid
-        FrogBreathDocument validDoc = FrogBreathDocument.Factory.parse("<dec:frog_breath xmlns:dec=\"http://misc/detailed/jira208\">1000.000000</dec:frog_breath>");
-
-        err.clear();
-        boolean valid2 = validDoc.validate(options);
-        if(!valid2)
-        {
-            for (Iterator iterator = err.iterator(); iterator.hasNext();) {
-                System.out.println("Validation Error (valid doc):" + iterator.next());
-            }
-        }
-
-        assertTrue(valid2);
-    }
-
-    /*
-    * [XMLBEANS-228]: 
-    * element order in sequence incorrect after calling substitute()
-    */
-    @Test
-    public void test_jira_xmlbeans228() throws Exception
-    {
-        PersonDocument personDocument = PersonDocument.Factory.newInstance();
-        PersonDocument.Person person = personDocument.addNewPerson();
-        CommentType commentType = person.addNewComment();
-        String ns = "http://jira/xmlbeans_228/substitution";
-        QName qName = new QName(ns, "FirstCommentElement");
-        Object resultObject = commentType.substitute(qName, FirstCommentType.type);
-        FirstCommentType firstCommentType = (FirstCommentType)resultObject;
-        firstCommentType.setStringValue("ThirdElement");
-        person.setComment(firstCommentType);
-        
-        person.setFirstName("FirstElement");
-        person.setLastName("SecondElement");
-        
-        XmlOptions opts = new XmlOptions().setSavePrettyPrint().setUseDefaultNamespace();
-        StringWriter out = new StringWriter();
-        personDocument.save(out, opts);
-
-        String exp = 
-            "<Person xmlns=\"http://jira/xmlbeans_228/substitution\">" + NEWLINE +
-            "  <FirstName>FirstElement</FirstName>" + NEWLINE +
-            "  <LastName>SecondElement</LastName>" + NEWLINE +
-            "  <FirstCommentElement>ThirdElement</FirstCommentElement>" + NEWLINE +
-            "</Person>";
-
-        assertEquals(exp, out.toString());
-        if (!personDocument.validate())
-        {
-            fail("Wrong element order!");
-        }
-    }
-}
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package misc.detailed;
+
+import jira.xmlbeans228.substitution.CommentType;
+import jira.xmlbeans228.substitution.FirstCommentType;
+import jira.xmlbeans228.substitution.PersonDocument;
+import misc.common.JiraTestBase;
+import misc.detailed.jira208.FrogBreathDocument;
+import org.apache.xmlbeans.XmlOptions;
+import org.junit.Test;
+
+import javax.xml.namespace.QName;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class JiraRegression201_250Test extends JiraTestBase {
+
+    /*
+    * [XMLBEANS-206]: Wrong method finding in getMethod() of InterfaceExtensionImpl
+    *
+    */
+    // Refer test case xmlobject.extensions.interfaceFeature.averageCase.checkin.testJiraXMLBEANS_206
+
+    /*
+    * [XMLBEANS-208]: validation of decimal with fractionDigits -- special case, additional zero digits
+    *
+    */
+    @Test
+    public void test_jira_xmlbeans208() throws Exception {
+
+        XmlOptions options = new XmlOptions();
+        List err = new ArrayList();
+        options.setErrorListener(err);
+
+        // decimal value invalid
+        FrogBreathDocument invalidDoc = FrogBreathDocument.Factory.parse("<dec:frog_breath xmlns:dec=\"http://misc/detailed/jira208\">1000.000001</dec:frog_breath>");
+        boolean valid = invalidDoc.validate(options);
+        if(!valid)
+        {
+            for (Iterator iterator = err.iterator(); iterator.hasNext();) {
+                System.out.println("Validation Error (invalid doc):" + iterator.next());
+            }
+        }
+        // expected to fail
+        assertFalse(valid);
+
+        // decimal value with trailing zeros tagged as invalid
+        FrogBreathDocument validDoc = FrogBreathDocument.Factory.parse("<dec:frog_breath xmlns:dec=\"http://misc/detailed/jira208\">1000.000000</dec:frog_breath>");
+
+        err.clear();
+        boolean valid2 = validDoc.validate(options);
+        if(!valid2)
+        {
+            for (Iterator iterator = err.iterator(); iterator.hasNext();) {
+                System.out.println("Validation Error (valid doc):" + iterator.next());
+            }
+        }
+
+        assertTrue(valid2);
+    }
+
+    /*
+    * [XMLBEANS-228]: 
+    * element order in sequence incorrect after calling substitute()
+    */
+    @Test
+    public void test_jira_xmlbeans228() throws Exception
+    {
+        PersonDocument personDocument = PersonDocument.Factory.newInstance();
+        PersonDocument.Person person = personDocument.addNewPerson();
+        CommentType commentType = person.addNewComment();
+        String ns = "http://jira/xmlbeans_228/substitution";
+        QName qName = new QName(ns, "FirstCommentElement");
+        Object resultObject = commentType.substitute(qName, FirstCommentType.type);
+        FirstCommentType firstCommentType = (FirstCommentType)resultObject;
+        firstCommentType.setStringValue("ThirdElement");
+        person.setComment(firstCommentType);
+        
+        person.setFirstName("FirstElement");
+        person.setLastName("SecondElement");
+        
+        XmlOptions opts = new XmlOptions().setSavePrettyPrint().setUseDefaultNamespace();
+        StringWriter out = new StringWriter();
+        personDocument.save(out, opts);
+
+        String exp = 
+            "<Person xmlns=\"http://jira/xmlbeans_228/substitution\">" + NEWLINE +
+            "  <FirstName>FirstElement</FirstName>" + NEWLINE +
+            "  <LastName>SecondElement</LastName>" + NEWLINE +
+            "  <FirstCommentElement>ThirdElement</FirstCommentElement>" + NEWLINE +
+            "</Person>";
+
+        assertEquals(exp, out.toString());
+        if (!personDocument.validate())
+        {
+            fail("Wrong element order!");
+        }
+    }
+}

Modified: xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression251_300Test.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression251_300Test.java?rev=1886772&r1=1886771&r2=1886772&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression251_300Test.java (original)
+++ xmlbeans/trunk/src/test/java/misc/detailed/JiraRegression251_300Test.java Sun Feb 21 21:48:26 2021
@@ -1,40 +1,40 @@
-/*
- *   Copyright 2009 The Apache Software Foundation
- *
- *   Licensed under the Apache License, Version 2.0 (the "License");
- *   you may not use this file except in compliance with the License.
- *   You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *   Unless required by applicable law or agreed to in writing, software
- *   distributed under the License is distributed on an "AS IS" BASIS,
- *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *   See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package misc.detailed;
-
-import com.easypo.XmlShipperBean;
-import misc.common.JiraTestBase;
-import org.junit.Test;
-
-import static org.junit.Assert.assertFalse;
-
-public class JiraRegression251_300Test extends JiraTestBase
-{
-    /*
-    * [XMLBEANS-260]: SchemaType#isSkippedAnonymousType() throws an NPE
-    * if _outerSchemaTypeRef is not set
-    */
-    @Test
-    public void test_jira_xmlbeans260()
-    {
-        // construct an instance of a non-anonymous type
-        XmlShipperBean xbean = XmlShipperBean.Factory.newInstance();
-        // the following call should not throw an NPE;
-        // it should return false instead
-        boolean isSkipped = xbean.schemaType().isSkippedAnonymousType();
-        assertFalse(isSkipped);
-    }
-}
+/*
+ *   Copyright 2009 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package misc.detailed;
+
+import com.easypo.XmlShipperBean;
+import misc.common.JiraTestBase;
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+
+public class JiraRegression251_300Test extends JiraTestBase
+{
+    /*
+    * [XMLBEANS-260]: SchemaType#isSkippedAnonymousType() throws an NPE
+    * if _outerSchemaTypeRef is not set
+    */
+    @Test
+    public void test_jira_xmlbeans260()
+    {
+        // construct an instance of a non-anonymous type
+        XmlShipperBean xbean = XmlShipperBean.Factory.newInstance();
+        // the following call should not throw an NPE;
+        // it should return false instead
+        boolean isSkipped = xbean.schemaType().isSkippedAnonymousType();
+        assertFalse(isSkipped);
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org