Author: jochen
Date: Fri Aug 19 12:22:07 2005
New Revision: 233543

URL: http://svn.apache.org/viewcvs?rev=233543&view=rev
Log:
Added a unit test for xs:pattern.

Modified:
    webservices/jaxme/trunk/ant/jm.xml
    webservices/jaxme/trunk/ant/macros.xml
    webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java
    
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java
    webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java
    
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java
    webservices/jaxme/trunk/status.xml

Modified: webservices/jaxme/trunk/ant/jm.xml
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/trunk/ant/jm.xml?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/ant/jm.xml (original)
+++ webservices/jaxme/trunk/ant/jm.xml Fri Aug 19 12:22:07 2005
@@ -136,6 +136,8 @@
             <exclude name="org/apache/ws/jaxme/impl/CharSetXMLWriter.java" 
unless="have14"/>
             <exclude name="org/apache/ws/jaxme/junit/*Test.java"/>
             <exclude name="org/apache/ws/jaxme/examples/misc/address/*.java"/>
+               <exclude name="org/apache/ws/jaxme/impl/XercesREHandler.java" 
unless="haveXercesRe"/>
+               <exclude name="org/apache/ws/jaxme/impl/Java5REHandler.java" 
unless="haveJava5Re"/>
         </javac>
         <jar destfile="${dist}/jaxme2-rt-${version}.jar">
             <fileset dir="${build.jm.classes}">

Modified: webservices/jaxme/trunk/ant/macros.xml
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/trunk/ant/macros.xml?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/ant/macros.xml (original)
+++ webservices/jaxme/trunk/ant/macros.xml Fri Aug 19 12:22:07 2005
@@ -44,6 +44,9 @@
       </and>
        </condition>
 
+       <available 
classname="org.apache.xerces.impl.xpath.regex.RegularExpression" 
property="haveXercesRe"/>
+       <available 
classname="com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression"
 property="haveJava5Re"/>
+
     <macrodef name="jc">
         <attribute name="srcdir"/>
         <attribute name="destdir"/>

Modified: 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java 
(original)
+++ webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java 
Fri Aug 19 12:22:07 2005
@@ -70,8 +70,13 @@
         * </ol>
         */
        public static REHandler getREHandler() { return reHandler; }
-       
-       private static class DummyREHandler implements REHandler {
+
+       /** Dummy implementation of an [EMAIL PROTECTED] REHandler},
+        * which accepts any string as matching for any pattern.
+        * Used as a fallback, if no other implementations are
+        * available.
+        */
+       public static class DummyREHandler implements REHandler {
                public Matcher getMatcher(final String pPattern) {
                        return new REHandler.Matcher() {
                                public String getPattern() { return pPattern; }

Modified: 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java 
(original)
+++ 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java 
Fri Aug 19 12:22:07 2005
@@ -23,9 +23,12 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.ValidationEvent;
+import javax.xml.bind.ValidationEventHandler;
 
 import org.apache.ws.jaxme.JMElement;
 import org.apache.ws.jaxme.impl.JMMarshallerImpl;
+import org.apache.ws.jaxme.impl.ValidationEventImpl;
 import org.xml.sax.InputSource;
 
 import junit.framework.TestCase;
@@ -37,7 +40,19 @@
  * @version $Id$
  */
 public abstract class BaseTestCase extends TestCase {
-    protected BaseTestCase() {
+    protected static class EventDetector implements ValidationEventHandler {
+               private ValidationEvent event;
+               public boolean handleEvent(ValidationEvent pEvent) {
+                       if (event == null) {
+                               event = pEvent;
+                       }
+                       return true;
+               }
+               boolean isSuccess() { return event == null; }
+               ValidationEventImpl getEvent() { return (ValidationEventImpl) 
event; }
+       }
+
+       protected BaseTestCase() {
     }
 
     protected BaseTestCase(String pName) {

Modified: 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java 
(original)
+++ webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java 
Fri Aug 19 12:22:07 2005
@@ -7,8 +7,6 @@
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
-import javax.xml.bind.ValidationEvent;
-import javax.xml.bind.ValidationEventHandler;
 
 import magoffin.matt.ieat.domain.impl.IngredientImpl;
 import net.dspc.commons.activitymodel.TransmissionData;
@@ -23,7 +21,6 @@
 import org.apache.ws.jaxme.generator.sg.SchemaSG;
 import org.apache.ws.jaxme.generator.sg.impl.JAXBSchemaReader;
 import org.apache.ws.jaxme.generator.util.JavaNamer;
-import org.apache.ws.jaxme.impl.ValidationEventImpl;
 import org.apache.ws.jaxme.test.jira.jaxme58.AuthorType;
 import org.apache.ws.jaxme.test.jira.jaxme58.BookType;
 import org.apache.ws.jaxme.test.jira.jaxme58.Booklist;
@@ -178,18 +175,6 @@
                        runFacetTest(i, "c", i == 4);
                }
        }
-
-       private static class EventDetector implements ValidationEventHandler {
-               private ValidationEvent event;
-               public boolean handleEvent(ValidationEvent pEvent) {
-                       if (event == null) {
-                               event = pEvent;
-                       }
-                       return true;
-               }
-               boolean isSuccess() { return event == null; }
-               ValidationEventImpl getEvent() { return (ValidationEventImpl) 
event; }
-       };
 
        private void runFacetTest(int i, String pAttrName, boolean pSuccess) 
throws JAXBException {
                JAXBContext ctx = super.getJAXBContext(Jira62.class);

Modified: 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java 
(original)
+++ 
webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java 
Fri Aug 19 12:22:07 2005
@@ -44,6 +44,7 @@
 import org.apache.ws.jaxme.impl.DatatypeConverterImpl;
 import org.apache.ws.jaxme.impl.JAXBContextImpl;
 import org.apache.ws.jaxme.impl.JMMarshallerImpl;
+import org.apache.ws.jaxme.impl.REFactory;
 import org.apache.ws.jaxme.test.misc.address.Address;
 import org.apache.ws.jaxme.test.misc.address.AddressType;
 import org.apache.ws.jaxme.test.misc.types.AllElement;
@@ -52,6 +53,7 @@
 import org.apache.ws.jaxme.test.misc.types.Author;
 import org.apache.ws.jaxme.test.misc.types.Html;
 import org.apache.ws.jaxme.test.misc.types.ObjectFactory;
+import org.apache.ws.jaxme.test.misc.types.Patterns;
 import org.apache.ws.jaxme.test.misc.types.impl.AllElementImpl;
 import org.apache.ws.jaxme.test.misc.types.impl.AllSimpleTypesImpl;
 import org.apache.ws.jaxme.test.misc.types.impl.AllTypesElementImpl;
@@ -638,5 +640,33 @@
                m.marshal(htmlElem, sw);
                String got = sw.toString();
                assertEquals(html, got);
+       }
+
+       private void testPattern(boolean pSuccess, String pValue) throws 
Exception {
+               boolean patternTestingAvailable = !(REFactory.getREHandler() 
instanceof REFactory.DummyREHandler);
+               final String prefix = "<ex:patterns 
xmlns:ex='http://ws.apache.org/jaxme/test/misc/types' foo='";
+               final String suffix = "'/>";
+               final String xml1 = prefix + pValue + suffix;
+               JAXBContext ctx = getJAXBContext(Patterns.class);
+               Unmarshaller u = ctx.createUnmarshaller();
+               EventDetector ed = new EventDetector();
+               u.setEventHandler(ed);
+               Patterns patterns = (Patterns) u.unmarshal(new InputSource(new 
StringReader(xml1)));
+               if (pSuccess  ||  !patternTestingAvailable) {
+                       assertTrue(ed.isSuccess());
+                       assertEquals(pValue, patterns.getFoo());
+               } else {
+                       assertTrue(!ed.isSuccess());
+                       assertNull(patterns.getFoo());
+               }
+       }
+
+       /** Tests, whether patterns are evaluated while unmarshalling.
+        */
+       public void testPatterns() throws Exception {
+               testPattern(true, "xY01");
+               testPattern(false, "xY");
+               testPattern(false, "xY0123");
+               testPattern(false, "x012");
        }
 }

Modified: webservices/jaxme/trunk/status.xml
URL: 
http://svn.apache.org/viewcvs/webservices/jaxme/trunk/status.xml?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/status.xml (original)
+++ webservices/jaxme/trunk/status.xml Fri Aug 19 12:22:07 2005
@@ -50,6 +50,9 @@
         build scripts. (JAXME-67, Boris Gruschke,
         <boris at gruschke.de>)
       </action>
+      <action dev="JW" type="enhancement" context="generator">
+        Added support for xs:pattern.
+      </action>
     </release>
        <release version="0.5" date="2005-Aug-08">
       <action dev="JW" type="enhancement" context="js">



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to