| /* |
| * 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!"); |
| } |
| } |
| } |