[jboss-svn-commits] JBL Code SVN: r33488 - in labs/jbossesb/trunk/product: services/soap/src/test/java/org/jboss/soa/esb/actions/soap and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jun 14 06:56:58 EDT 2010


Author: mageshbk at jboss.com
Date: 2010-06-14 06:56:58 -0400 (Mon, 14 Jun 2010)
New Revision: 33488

Added:
   labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/soap-message-03.xml
Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java
   labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/SOAPClient_Response_UnitTest.java
Log:
[JBESB-1946] - Added support for soapenc:arrayType in OGNLUtils.assertIsParentCollection



Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java	2010-06-14 10:24:18 UTC (rev 33487)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java	2010-06-14 10:56:58 UTC (rev 33488)
@@ -24,6 +24,8 @@
     public static final String IS_COLLECTION_ATTRIB = "is-collection";
     public static final String SOAPUI_CLONE_COMMENT = " repetitions:";
     public static final String CLONED_POSTFIX = " - cloned";
+    public static final String SOAPENC_NS = "http://schemas.xmlsoap.org/soap/encoding/";
+    public static final String ARRAYTYPE_ATTRIB = "arrayType";
     
     private enum SOAPNameSpaces 
     { 
@@ -184,6 +186,12 @@
         Node parent = element.getParentNode();
         if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
             Element pelement = (Element)parent;
+
+            //Check for encoded arrays
+            if (pelement.hasAttributeNS(SOAPENC_NS, ARRAYTYPE_ATTRIB)) {
+                return true;
+            }
+
             if(pelement.getAttributeNS(JBOSSESB_SOAP_NS, IS_COLLECTION_ATTRIB).equals("true")) {
                 // It's already been attributed... no need to check for the soapui comment...
                 return true;

Modified: labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/SOAPClient_Response_UnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/SOAPClient_Response_UnitTest.java	2010-06-14 10:24:18 UTC (rev 33487)
+++ labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/SOAPClient_Response_UnitTest.java	2010-06-14 10:56:58 UTC (rev 33488)
@@ -107,6 +107,23 @@
         assertEquals(expected, responseMap.toString());
     }
 
+    public void test_OgnlMap_ResponseProcessing_JBESB_1946() throws ConfigurationException, ActionProcessingException {
+        ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-02");
+        SOAPClient soapClient = new SOAPClient(actionConfig);
+        String responseString = new String(StreamUtils.readStream(getClass().getResourceAsStream("soap-message-03.xml")));
+        String expected = "{orderResponse.orderStatus[0].id=1," +
+                          " orderResponse.orderStatus[0].comment=order 1 processed," +
+                          " orderResponse.orderStatus[1].id=2," +
+                          " orderResponse.orderStatus[1].comment=order 2 processed}";
+
+        Message message = MessageFactory.getInstance().getMessage();
+
+        soapClient.processResponse(message, new Response(responseString));
+        Map<String, String> responseMap = (Map<String, String>) message.getBody().get();
+
+        assertEquals(expected, responseMap.toString());
+    }
+
     public void test_No_ResponseProcessing() throws ConfigurationException, ActionProcessingException {
         ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-03");
         SOAPClient soapClient = new SOAPClient(actionConfig);

Added: labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/soap-message-03.xml
===================================================================
--- labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/soap-message-03.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/soap-message-03.xml	2010-06-14 10:56:58 UTC (rev 33488)
@@ -0,0 +1,16 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+   <soapenv:Body>
+      <ord:orderResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ord='http://webservice_consumer_encoded/orderProcessor'>
+         <orderStatus soapenc:arrayType="ord:item[2]" xsi:type="ord:orderStatusArray" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
+            <orderStatus xsi:type="ord:item">
+               <id xsi:type="xsd:int">1</id>
+               <comment xsi:type="xsd:string">order 1 processed</comment>
+            </orderStatus>
+            <orderStatus xsi:type="ord:item">
+               <id xsi:type="xsd:int">2</id>
+               <comment xsi:type="xsd:string">order 2 processed</comment>
+            </orderStatus>
+         </orderStatus>
+      </ord:orderResponse>
+   </soapenv:Body>
+</soapenv:Envelope> 
\ No newline at end of file



More information about the jboss-svn-commits mailing list