Author: veithen
Date: Mon Dec  5 21:41:37 2011
New Revision: 1210652

URL: http://svn.apache.org/viewvc?rev=1210652&view=rev
Log:
Added a regression test for SYNAPSE-501 (which basically shows that the issue 
was fixed by an improvement in Axiom).

Added:
    
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/
    
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-conf.xml
   (with props)
    
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-soap.xml
   (with props)
    
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501.xsd
   (with props)
Modified:
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContextBuilder.java
    
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/ValidateMediatorTest.java

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContextBuilder.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContextBuilder.java?rev=1210652&r1=1210651&r2=1210652&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContextBuilder.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/TestMessageContextBuilder.java
 Mon Dec  5 21:41:37 2011
@@ -20,7 +20,6 @@
 package org.apache.synapse;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.StringReader;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -53,7 +52,7 @@ public class TestMessageContextBuilder {
     private final Map<String,Entry> entries = new HashMap<String,Entry>();
     private boolean requireAxis2MessageContext;
     private String contentString;
-    private String contentFile;
+    private URL contentURL;
     private boolean contentIsEnvelope;
     private boolean addTextAroundBody;
     
@@ -67,15 +66,27 @@ public class TestMessageContextBuilder {
         contentIsEnvelope = false;
         return this;
     }
+
+    private TestMessageContextBuilder setContentFromFile(String path, boolean 
contentIsEnvelope) {
+        try {
+            contentURL = new File(path).toURL();
+        } catch (MalformedURLException ex) {
+            throw new Error(ex);
+        }
+        this.contentIsEnvelope = contentIsEnvelope;
+        return this;
+    }
     
     public TestMessageContextBuilder setBodyFromFile(String path) {
-        this.contentFile = path;
-        contentIsEnvelope = false;
-        return this;
+        return setContentFromFile(path, false);
     }
     
     public TestMessageContextBuilder setEnvelopeFromFile(String path) {
-        this.contentFile = path;
+        return setContentFromFile(path, true);
+    }
+    
+    public TestMessageContextBuilder setEnvelope(URL url) {
+        contentURL = url;
         contentIsEnvelope = true;
         return this;
     }
@@ -132,8 +143,8 @@ public class TestMessageContextBuilder {
         XMLStreamReader parser = null;
         if (contentString != null) {
             parser = StAXUtils.createXMLStreamReader(new 
StringReader(contentString));
-        } else if (contentFile != null) {
-            parser = StAXUtils.createXMLStreamReader(new 
FileInputStream(contentFile));
+        } else if (contentURL != null) {
+            parser = StAXUtils.createXMLStreamReader(contentURL.openStream());
         }
         
         SOAPEnvelope envelope;

Modified: 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/ValidateMediatorTest.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/ValidateMediatorTest.java?rev=1210652&r1=1210651&r2=1210652&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/ValidateMediatorTest.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/builtin/ValidateMediatorTest.java
 Mon Dec  5 21:41:37 2011
@@ -20,6 +20,8 @@
 package org.apache.synapse.mediators.builtin;
 
 import junit.framework.TestCase;
+
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.commons.lang.mutable.MutableInt;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.TestMessageContextBuilder;
@@ -400,5 +402,19 @@ public class ValidateMediatorTest extend
         return keyList;
     }
 
-
+    /**
+     * Regression test for SYNAPSE-501.
+     * 
+     * @throws Exception
+     */
+    public void testSynapse501() throws Exception {
+        ValidateMediatorFactory mf = new ValidateMediatorFactory();
+        ValidateMediator validate = (ValidateMediator)mf.createMediator(
+                
OMXMLBuilderFactory.createOMBuilder(ValidateMediatorTest.class.getResourceAsStream("synapse-501-conf.xml")).getDocumentElement(),
+                new Properties());
+        MessageContext synCtx = new TestMessageContextBuilder()
+                .addEntry("validate_schema", 
ValidateMediatorTest.class.getResource("synapse-501.xsd"))
+                
.setEnvelope(ValidateMediatorTest.class.getResource("synapse-501-soap.xml")).build();
+        test(validate, synCtx, false);
+    }
 }

Added: 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-conf.xml
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-conf.xml?rev=1210652&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-conf.xml
 (added)
+++ 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-conf.xml
 Mon Dec  5 21:41:37 2011
@@ -0,0 +1,8 @@
+<validate xmlns="http://ws.apache.org/ns/synapse"; 
xmlns:s11="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:s12="http://www.w3.org/2003/05/soap-envelope"; 
source="s11:Body/child::*[position()=1] | s12:Body/child::*[position()=1]">
+    <schema key="validate_schema"/>
+    <on-fail>
+        <log level="custom">
+            <property name="MSG" value="FAIL"/>
+        </log>
+    </on-fail>
+</validate>

Propchange: 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-conf.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-soap.xml
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-soap.xml?rev=1210652&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-soap.xml
 (added)
+++ 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-soap.xml
 Mon Dec  5 21:41:37 2011
@@ -0,0 +1,14 @@
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
+<SOAP-ENV:Body>
+<ns6216:issue xmlns:ns6216="http://hostname/rfid_1_0/"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+<nu4900:token xmlns:nu4900="http://hostname/rfid_1_0/"; 
xsi:type="xsd:string">00000000-00</nu4900:token>
+<nu4712:rfid xmlns:nu4712="http://hostname/rfid_1_0/"; 
xsi:type="xsd:string">4C46688D</nu4712:rfid>
+<nu9698:eventId xmlns:nu9698="http://hostname/rfid_1_0/"; 
xsi:type="xsd:string">0</nu9698:eventId>
+<nu5118:locationId xmlns:nu5118="http://hostname/rfid_1_0/"; 
xsi:type="xsd:long">534</nu5118:locationId>
+<nu4242:accessStart xmlns:nu4242="http://hostname/rfid_1_0/"; 
xsi:type="xsd:string">test0.8</nu4242:accessStart>
+</ns6216:issue>
+</SOAP-ENV:Body>
+</SOAP-ENV:Envelope>

Propchange: 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501-soap.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501.xsd
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501.xsd?rev=1210652&view=auto
==============================================================================
--- 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501.xsd
 (added)
+++ 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501.xsd
 Mon Dec  5 21:41:37 2011
@@ -0,0 +1,35 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+   elementFormDefault="qualified"
+   attributeFormDefault="unqualified"
+   xmlns:tns="http://hostname/rfid_1_0/";
+   targetNamespace="http://hostname/rfid_1_0/"; >
+
+<!-- ISSUE -->
+<xs:element name="issue" type="tns:issue"/>
+<xs:complexType name="issue">
+        <xs:sequence>
+                <xs:element name="token" type="xs:string"/>
+                <xs:element name="rfid" type="xs:string"/>
+                <xs:element name="eventId" type="xs:string"/>
+                <xs:element name="locationId" type="xs:long"/>
+                <xs:element name="accessStart" type="xs:string" />
+                <xs:element minOccurs="0" name="accessEnd" type="xs:string"/>
+                <xs:element minOccurs="0" name="reentry" type="xs:boolean"/>
+                <xs:element minOccurs="0" name="count" type="xs:int"/>
+                <xs:element minOccurs="0" name="customerId" type="xs:string"/>
+                <xs:element minOccurs="0" name="customerName" 
type="xs:string"/>
+        </xs:sequence>
+</xs:complexType>
+
+<!-- ISSUE RESPONSE -->
+<xs:element name="issueResponse" type="tns:issueResponse" />
+<xs:complexType name="issueResponse">
+        <xs:sequence>
+                <xs:element minOccurs="1" maxOccurs="1" name="resultCode" 
type="xs:int"/>
+                <xs:element minOccurs="1" maxOccurs="1" 
name="resultDescription" type="xs:string"/>
+                <xs:element minOccurs="0" maxOccurs="1" name="transactionId" 
type="xs:long"/>
+                </xs:sequence>
+</xs:complexType>
+
+</xs:schema>

Propchange: 
synapse/trunk/java/modules/core/src/test/resources/org/apache/synapse/mediators/builtin/synapse-501.xsd
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to