You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2014/05/29 20:56:50 UTC

svn commit: r1598368 - in /webservices/axiom/trunk/modules: axiom-api/src/main/java/org/apache/axiom/soap/ axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/ axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/ axiom-testsuite/s...

Author: veithen
Date: Thu May 29 18:56:49 2014
New Revision: 1598368

URL: http://svn.apache.org/r1598368
Log:
Increase test coverage of the SOAPHeaderBlock implementations.

Added:
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/headerblock/TestGetMustUnderstandInvalid.java
      - copied, changed from r1598171, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestGetRelay.java
      - copied, changed from r1598171, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestSetRelay.java
      - copied, changed from r1598171, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java
Modified:
    webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeaderBlock.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderBlockImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderBlockImpl.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java

Modified: webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeaderBlock.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeaderBlock.java?rev=1598368&r1=1598367&r2=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeaderBlock.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeaderBlock.java Thu May 29 18:56:49 2014
@@ -75,15 +75,16 @@ public interface SOAPHeaderBlock extends
     void setMustUnderstand(String mustUnderstand) throws SOAPProcessingException;
 
     /**
-     * Returns whether the mustUnderstand attribute for this <CODE>SOAPHeaderBlock</CODE> object is
-     * turned on.
-     *
-     * @return <CODE>true</CODE> if the mustUnderstand attribute of this
-     *         <CODE>SOAPHeaderBlock</CODE> object is turned on; <CODE>false</CODE> otherwise
+     * Returns the boolean value of the <tt>mustUnderstand</tt> attribute for this header block.
+     * 
+     * @return <code>true</code> if a <tt>mustUnderstand</tt> attribute is present and its value is
+     *         equivalent to true, <code>false</code> if the <tt>mustUnderstand</tt> is not present
+     *         or its value is equivalent to false
+     * @throws SOAPProcessingException
+     *             if the <tt>mustUnderstand</tt> attribute is present, but has an invalid value
      */
     boolean getMustUnderstand() throws SOAPProcessingException;
 
-
     boolean isProcessed();
 
     /**

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderBlockImpl.java?rev=1598368&r1=1598367&r2=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderBlockImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderBlockImpl.java Thu May 29 18:56:49 2014
@@ -89,13 +89,6 @@ public class SOAP11HeaderBlockImpl exten
         }
     }
 
-    /**
-     * Returns whether the mustUnderstand attribute for this <CODE>SOAPHeaderBlock</CODE> object is
-     * turned on.
-     *
-     * @return <CODE>true</CODE> if the mustUnderstand attribute of this
-     *         <CODE>SOAPHeaderBlock</CODE> object is turned on; <CODE>false</CODE> otherwise
-     */
     public boolean getMustUnderstand() throws SOAPProcessingException {
         String mustUnderstand;
         if ((mustUnderstand =

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderBlockImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderBlockImpl.java?rev=1598368&r1=1598367&r2=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderBlockImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderBlockImpl.java Thu May 29 18:56:49 2014
@@ -96,13 +96,6 @@ public class SOAP11HeaderBlockImpl exten
         }
     }
 
-    /**
-     * Returns whether the mustUnderstand attribute for this <CODE>SOAPHeaderBlock</CODE> object is
-     * turned on.
-     *
-     * @return <CODE>true</CODE> if the mustUnderstand attribute of this
-     *         <CODE>SOAPHeaderBlock</CODE> object is turned on; <CODE>false</CODE> otherwise
-     */
     public boolean getMustUnderstand() throws SOAPProcessingException {
         // First, try getting the information from the property
         // Fallback to getting the information from the attribute

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java?rev=1598368&r1=1598367&r2=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java Thu May 29 18:56:49 2014
@@ -215,6 +215,7 @@ public class SOAPTestSuiteBuilder extend
             addTest(new org.apache.axiom.ts.soap.headerblock.TestByteArrayDS(metaFactory, spec));
         }
         addTest(new org.apache.axiom.ts.soap.headerblock.TestGetMustUnderstand(metaFactory, spec));
+        addTest(new org.apache.axiom.ts.soap.headerblock.TestGetMustUnderstandInvalid(metaFactory, spec));
         addTest(new org.apache.axiom.ts.soap.headerblock.TestGetRole(metaFactory, spec));
         addTest(new org.apache.axiom.ts.soap.headerblock.TestGetVersion(metaFactory, spec));
         addTest(new org.apache.axiom.ts.soap.headerblock.TestSetMustUnderstandBoolean(metaFactory, spec, true, spec == SOAPSpec.SOAP11 ? "1" : "true"));
@@ -279,8 +280,10 @@ public class SOAPTestSuiteBuilder extend
         addTest(new org.apache.axiom.ts.soap11.header.TestGetHeaderBlocksWithNSURIWithParser(metaFactory));
         addTest(new org.apache.axiom.ts.soap11.header.TestGetHeadersToProcessWithParser(metaFactory));
         addTest(new org.apache.axiom.ts.soap11.headerblock.TestGetMustUnderstandWithParser(metaFactory));
+        addTest(new org.apache.axiom.ts.soap11.headerblock.TestGetRelay(metaFactory));
         addTest(new org.apache.axiom.ts.soap11.headerblock.TestGetRoleWithParser(metaFactory));
         addTest(new org.apache.axiom.ts.soap11.headerblock.TestSetMustUnderstandStringTrueFalse(metaFactory));
+        addTest(new org.apache.axiom.ts.soap11.headerblock.TestSetRelay(metaFactory));
         if (supportsOMSourcedElement) {
             addTest(new org.apache.axiom.ts.soap11.misc.TestElementPullStreamAndOMExpansion(metaFactory));
             addTest(new org.apache.axiom.ts.soap11.misc.TestElementPullStreamAndOMExpansion2(metaFactory));
@@ -320,7 +323,8 @@ public class SOAPTestSuiteBuilder extend
         addTest(new org.apache.axiom.ts.soap12.headerblock.TestGetRelayWithParser(metaFactory));
         addTest(new org.apache.axiom.ts.soap12.headerblock.TestGetRoleWithParser(metaFactory));
         addTest(new org.apache.axiom.ts.soap12.headerblock.TestSetMustUnderstandStringTrueFalse(metaFactory));
-        addTest(new org.apache.axiom.ts.soap12.headerblock.TestSetRelay(metaFactory));
+        addTest(new org.apache.axiom.ts.soap12.headerblock.TestSetRelay(metaFactory, true));
+        addTest(new org.apache.axiom.ts.soap12.headerblock.TestSetRelay(metaFactory, false));
         addTest(new org.apache.axiom.ts.soap12.mtom.TestGetXMLStreamReaderMTOMEncoded(metaFactory, true));
         addTest(new org.apache.axiom.ts.soap12.mtom.TestGetXMLStreamReaderMTOMEncoded(metaFactory, false));
     }

Copied: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/headerblock/TestGetMustUnderstandInvalid.java (from r1598171, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/headerblock/TestGetMustUnderstandInvalid.java?p2=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/headerblock/TestGetMustUnderstandInvalid.java&p1=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java&r1=1598171&r2=1598368&rev=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/headerblock/TestGetMustUnderstandInvalid.java Thu May 29 18:56:49 2014
@@ -16,32 +16,36 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.ts.soap12.headerblock;
+package org.apache.axiom.ts.soap.headerblock;
+
+import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPConstants;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axiom.soap.SOAPProcessingException;
 import org.apache.axiom.ts.soap.SOAPSpec;
 import org.apache.axiom.ts.soap.SOAPTestCase;
 
-public class TestSetRelay extends SOAPTestCase {
-    public TestSetRelay(OMMetaFactory metaFactory) {
-        super(metaFactory, SOAPSpec.SOAP12);
+/**
+ * Tests that {@link SOAPHeaderBlock#getMustUnderstand()} throws {@link SOAPProcessingException} if
+ * a <tt>mustUnderstand</tt> attribute is present but has an invalid value.
+ */
+public class TestGetMustUnderstandInvalid extends SOAPTestCase {
+    public TestGetMustUnderstandInvalid(OMMetaFactory metaFactory, SOAPSpec spec) {
+        super(metaFactory, spec);
     }
 
     protected void runTest() throws Throwable {
-        SOAPEnvelope env = soapFactory.createSOAPEnvelope();
-        SOAPHeader header = soapFactory.createSOAPHeader(env);
-        soapFactory.createSOAPBody(env);
-        OMNamespace ns = soapFactory.createOMNamespace("http://ns1", "ns1");
-        SOAPHeaderBlock relayHeader = header.addHeaderBlock("foo", ns);
-        relayHeader.setText("hey there");
-        relayHeader.setRelay(true);
-
-        String envString = env.toString();
-        assertTrue("No relay header after setRelay(true)",
-                   envString.indexOf("relay=\"true\"") >= 0);
+        SOAPHeader header = soapFactory.getDefaultEnvelope().getOrCreateHeader();
+        SOAPHeaderBlock headerBlock = header.addHeaderBlock(new QName("urn:test", "test", "p"));
+        headerBlock.addAttribute(SOAPConstants.ATTR_MUSTUNDERSTAND, "invalid", header.getNamespace());
+        try {
+            headerBlock.getMustUnderstand();
+            fail("Expected SOAPProcessingException");
+        } catch (SOAPProcessingException ex) {
+            // Expected
+        }
     }
 }

Copied: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestGetRelay.java (from r1598171, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestGetRelay.java?p2=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestGetRelay.java&p1=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java&r1=1598171&r2=1598368&rev=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestGetRelay.java Thu May 29 18:56:49 2014
@@ -16,32 +16,33 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.ts.soap12.headerblock;
+package org.apache.axiom.ts.soap11.headerblock;
+
+import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.ts.soap.SOAPSpec;
 import org.apache.axiom.ts.soap.SOAPTestCase;
 
-public class TestSetRelay extends SOAPTestCase {
-    public TestSetRelay(OMMetaFactory metaFactory) {
-        super(metaFactory, SOAPSpec.SOAP12);
+/**
+ * Tests that {@link SOAPHeaderBlock#getRelay()} throws {@link UnsupportedOperationException} for
+ * SOAP 1.1 messages.
+ */
+public class TestGetRelay extends SOAPTestCase {
+    public TestGetRelay(OMMetaFactory metaFactory) {
+        super(metaFactory, SOAPSpec.SOAP11);
     }
 
     protected void runTest() throws Throwable {
-        SOAPEnvelope env = soapFactory.createSOAPEnvelope();
-        SOAPHeader header = soapFactory.createSOAPHeader(env);
-        soapFactory.createSOAPBody(env);
-        OMNamespace ns = soapFactory.createOMNamespace("http://ns1", "ns1");
-        SOAPHeaderBlock relayHeader = header.addHeaderBlock("foo", ns);
-        relayHeader.setText("hey there");
-        relayHeader.setRelay(true);
-
-        String envString = env.toString();
-        assertTrue("No relay header after setRelay(true)",
-                   envString.indexOf("relay=\"true\"") >= 0);
+        SOAPHeader header = soapFactory.getDefaultEnvelope().getOrCreateHeader();
+        SOAPHeaderBlock headerBlock = header.addHeaderBlock(new QName("urn:test", "test", "p"));
+        try {
+            headerBlock.getRelay();
+            fail("Expected UnsupportedOperationException");
+        } catch (UnsupportedOperationException ex) {
+            // Expected
+        }
     }
 }

Copied: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestSetRelay.java (from r1598171, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestSetRelay.java?p2=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestSetRelay.java&p1=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java&r1=1598171&r2=1598368&rev=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap11/headerblock/TestSetRelay.java Thu May 29 18:56:49 2014
@@ -16,32 +16,33 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.ts.soap12.headerblock;
+package org.apache.axiom.ts.soap11.headerblock;
+
+import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.ts.soap.SOAPSpec;
 import org.apache.axiom.ts.soap.SOAPTestCase;
 
+/**
+ * Tests that {@link SOAPHeaderBlock#setRelay()} throws {@link UnsupportedOperationException} for
+ * SOAP 1.1 messages.
+ */
 public class TestSetRelay extends SOAPTestCase {
     public TestSetRelay(OMMetaFactory metaFactory) {
-        super(metaFactory, SOAPSpec.SOAP12);
+        super(metaFactory, SOAPSpec.SOAP11);
     }
 
     protected void runTest() throws Throwable {
-        SOAPEnvelope env = soapFactory.createSOAPEnvelope();
-        SOAPHeader header = soapFactory.createSOAPHeader(env);
-        soapFactory.createSOAPBody(env);
-        OMNamespace ns = soapFactory.createOMNamespace("http://ns1", "ns1");
-        SOAPHeaderBlock relayHeader = header.addHeaderBlock("foo", ns);
-        relayHeader.setText("hey there");
-        relayHeader.setRelay(true);
-
-        String envString = env.toString();
-        assertTrue("No relay header after setRelay(true)",
-                   envString.indexOf("relay=\"true\"") >= 0);
+        SOAPHeader header = soapFactory.getDefaultEnvelope().getOrCreateHeader();
+        SOAPHeaderBlock headerBlock = header.addHeaderBlock(new QName("urn:test", "test", "p"));
+        try {
+            headerBlock.setRelay(true);
+            fail("Expected UnsupportedOperationException");
+        } catch (UnsupportedOperationException ex) {
+            // Expected
+        }
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java?rev=1598368&r1=1598367&r2=1598368&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/headerblock/TestSetRelay.java Thu May 29 18:56:49 2014
@@ -27,8 +27,12 @@ import org.apache.axiom.ts.soap.SOAPSpec
 import org.apache.axiom.ts.soap.SOAPTestCase;
 
 public class TestSetRelay extends SOAPTestCase {
-    public TestSetRelay(OMMetaFactory metaFactory) {
+    private final boolean value;
+    
+    public TestSetRelay(OMMetaFactory metaFactory, boolean value) {
         super(metaFactory, SOAPSpec.SOAP12);
+        this.value = value;
+        addTestParameter("value", value);
     }
 
     protected void runTest() throws Throwable {
@@ -38,10 +42,10 @@ public class TestSetRelay extends SOAPTe
         OMNamespace ns = soapFactory.createOMNamespace("http://ns1", "ns1");
         SOAPHeaderBlock relayHeader = header.addHeaderBlock("foo", ns);
         relayHeader.setText("hey there");
-        relayHeader.setRelay(true);
+        relayHeader.setRelay(value);
 
         String envString = env.toString();
         assertTrue("No relay header after setRelay(true)",
-                   envString.indexOf("relay=\"true\"") >= 0);
+                   envString.indexOf("relay=\"" + value + "\"") >= 0);
     }
 }