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 2013/01/23 23:34:55 UTC

svn commit: r1437784 - in /webservices/axiom/trunk/modules: axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/ axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/ axiom-testsuite/src/main/java/org/apache/axiom/ts/om/ axiom-testsuite/src/main...

Author: veithen
Date: Wed Jan 23 22:34:55 2013
New Revision: 1437784

URL: http://svn.apache.org/viewvc?rev=1437784&view=rev
Log:
Refined the test case for AXIOM-430.

Added:
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/TestSerialize.java
      - copied, changed from r1436683, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java
Modified:
    webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
    webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.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/soap/builder/MessageTest.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/ExpansionStrategy.java
    webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/Strategies.java

Modified: webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java?rev=1437784&r1=1437783&r2=1437784&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java Wed Jan 23 22:34:55 2013
@@ -24,7 +24,7 @@ import junit.framework.TestSuite;
 import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
 import org.apache.axiom.ts.soap.SOAPTestSuiteBuilder;
 import org.apache.axiom.ts.soap.body.TestHasFaultAfterReplace;
-import org.apache.axiom.ts.soap.builder.MessageTest;
+import org.apache.axiom.ts.soap.envelope.TestSerialize;
 import org.apache.axiom.ts.soap.factory.TestGetDefaultFaultEnvelope;
 import org.apache.axiom.ts.soap.faultdetail.TestWSCommons202;
 import org.apache.axiom.ts.soap.faulttext.TestSetLang;
@@ -52,7 +52,7 @@ public class SOAPImplementationTest exte
         builder.exclude(TestSetValueFromQNameWithExistingValue.class);
         
         // TODO: AXIOM-430
-        builder.exclude(MessageTest.class, "(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter))");
+        builder.exclude(TestSerialize.class, "(&(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter))(|(cache=true)(expand=fully)))");
         
         return builder.build();
     }

Modified: webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java?rev=1437784&r1=1437783&r2=1437784&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java Wed Jan 23 22:34:55 2013
@@ -23,14 +23,14 @@ import junit.framework.TestSuite;
 
 import org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory;
 import org.apache.axiom.ts.soap.SOAPTestSuiteBuilder;
-import org.apache.axiom.ts.soap.builder.MessageTest;
+import org.apache.axiom.ts.soap.envelope.TestSerialize;
 
 public class SOAPImplementationTest extends TestCase {
     public static TestSuite suite() {
         SOAPTestSuiteBuilder builder = new SOAPTestSuiteBuilder(new OMLinkedListMetaFactory(), true, true);
         
         // TODO: AXIOM-430
-        builder.exclude(MessageTest.class, "(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter))");
+        builder.exclude(TestSerialize.class, "(&(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter))(|(cache=true)(expand=fully)))");
         
         return builder.build();
     }

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java?rev=1437784&r1=1437783&r2=1437784&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java Wed Jan 23 22:34:55 2013
@@ -54,12 +54,6 @@ public class OMTestSuiteBuilder extends 
         new OMElementFactory(false),
         new OMElementFactory(true) };
     
-    private static final ExpansionStrategy[] expansionStrategies = {
-        ExpansionStrategy.DONT_EXPAND,
-        ExpansionStrategy.PARTIAL,
-        ExpansionStrategy.FULL
-    };
-    
     private static final QName[] qnames = {
         new QName("root"),
         new QName("urn:test", "root", "p"),
@@ -77,6 +71,7 @@ public class OMTestSuiteBuilder extends 
         ConformanceTestFile[] conformanceFiles = ConformanceTestFile.getConformanceTestFiles();
         SerializationStrategy[] serializationStrategies = Strategies.getSerializationStrategies();
         ElementContext[] elementContexts = Strategies.getElementContexts();
+        ExpansionStrategy[] expansionStrategies = Strategies.getExpansionStrategies();
         addTest(new org.apache.axiom.ts.om.attribute.TestDigestWithNamespace(metaFactory));
         addTest(new org.apache.axiom.ts.om.attribute.TestDigestWithoutNamespace(metaFactory));
         addTest(new org.apache.axiom.ts.om.attribute.TestEqualsHashCode(metaFactory));

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=1437784&r1=1437783&r2=1437784&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 Wed Jan 23 22:34:55 2013
@@ -27,6 +27,7 @@ import org.apache.axiom.soap.SOAP11Const
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPConstants;
 import org.apache.axiom.testutils.suite.TestSuiteBuilder;
+import org.apache.axiom.ts.strategy.ExpansionStrategy;
 import org.apache.axiom.ts.strategy.Strategies;
 import org.apache.axiom.ts.strategy.serialization.SerializationStrategy;
 
@@ -216,13 +217,12 @@ public class SOAPTestSuiteBuilder extend
         addTests(SOAPSpec.SOAP11);
         addTests(SOAPSpec.SOAP12);
         SerializationStrategy[] serializationStrategies = Strategies.getSerializationStrategies();
+        ExpansionStrategy[] expansionStrategies = Strategies.getExpansionStrategies();
         for (int i=0; i<badSOAPFiles.length; i++) {
             addTest(new org.apache.axiom.ts.soap.builder.BadInputTest(metaFactory, badSOAPFiles[i]));
         }
         for (int i=0; i<goodSOAPFiles.length; i++) {
-            for (int j=0; j<serializationStrategies.length; j++) {
-                addTest(new org.apache.axiom.ts.soap.builder.MessageTest(metaFactory, goodSOAPFiles[i], serializationStrategies[j]));
-            }
+            addTest(new org.apache.axiom.ts.soap.builder.MessageTest(metaFactory, goodSOAPFiles[i]));
         }
         addTest(new org.apache.axiom.ts.soap.envelope.TestClone(metaFactory, SOAPSpec.SOAP11, "sample1.xml"));
         addTest(new org.apache.axiom.ts.soap.envelope.TestClone(metaFactory, SOAPSpec.SOAP11, "soapmessage.xml"));
@@ -232,6 +232,13 @@ public class SOAPTestSuiteBuilder extend
         addTest(new org.apache.axiom.ts.soap.envelope.TestClone(metaFactory, SOAPSpec.SOAP11, "reallyReallyBigMessage.xml"));
         addTest(new org.apache.axiom.ts.soap.envelope.TestClone(metaFactory, SOAPSpec.SOAP11, "emtyBodymessage.xml"));
         addTest(new org.apache.axiom.ts.soap.envelope.TestClone(metaFactory, SOAPSpec.SOAP11, "soap11fault.xml")); 
+        for (int i=0; i<goodSOAPFiles.length; i++) {
+            for (int j=0; j<expansionStrategies.length; j++) {
+                for (int k=0; k<serializationStrategies.length; k++) {
+                    addTest(new org.apache.axiom.ts.soap.envelope.TestSerialize(metaFactory, goodSOAPFiles[i], expansionStrategies[j], serializationStrategies[k]));
+                }
+            }
+        }
         addTest(new org.apache.axiom.ts.soap11.builder.TestBuilder(metaFactory));
         addTest(new org.apache.axiom.ts.soap11.envelope.TestAddElementAfterBody(metaFactory));
         addTest(new org.apache.axiom.ts.soap11.fault.TestGetNode(metaFactory));

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java?rev=1437784&r1=1437783&r2=1437784&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java Wed Jan 23 22:34:55 2013
@@ -23,30 +23,20 @@ import org.apache.axiom.om.OMMetaFactory
 import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.ts.AxiomTestCase;
-import org.apache.axiom.ts.strategy.serialization.SerializationStrategy;
-import org.custommonkey.xmlunit.XMLAssert;
-import org.custommonkey.xmlunit.XMLUnit;
-import org.xml.sax.InputSource;
 
 public class MessageTest extends AxiomTestCase {
     private final String file;
-    private final SerializationStrategy serializationStrategy;
 
-    public MessageTest(OMMetaFactory metaFactory, String file, SerializationStrategy serializationStrategy) {
+    public MessageTest(OMMetaFactory metaFactory, String file) {
         super(metaFactory);
         this.file = file;
-        this.serializationStrategy = serializationStrategy;
         addTestProperty("file", file);
-        serializationStrategy.addTestProperties(this);
     }
 
     protected void runTest() throws Throwable {
         SOAPEnvelope soapEnvelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory,
                 AbstractTestCase.getTestResource(file), null).getSOAPEnvelope();
         OMTestUtils.walkThrough(soapEnvelope);
-        XMLAssert.assertXMLIdentical(XMLUnit.compareXML(
-                new InputSource(AbstractTestCase.getTestResource(file)),
-                serializationStrategy.serialize(soapEnvelope).getInputSource()), true);
         soapEnvelope.close(false);
     }
 }

Copied: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/TestSerialize.java (from r1436683, webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/TestSerialize.java?p2=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/TestSerialize.java&p1=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java&r1=1436683&r2=1437784&rev=1437784&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/builder/MessageTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/envelope/TestSerialize.java Wed Jan 23 22:34:55 2013
@@ -16,34 +16,39 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.ts.soap.builder;
+package org.apache.axiom.ts.soap.envelope;
 
 import org.apache.axiom.om.AbstractTestCase;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.strategy.ExpansionStrategy;
 import org.apache.axiom.ts.strategy.serialization.SerializationStrategy;
 import org.custommonkey.xmlunit.XMLAssert;
 import org.custommonkey.xmlunit.XMLUnit;
 import org.xml.sax.InputSource;
 
-public class MessageTest extends AxiomTestCase {
+public class TestSerialize extends AxiomTestCase {
     private final String file;
+    private final ExpansionStrategy expansionStrategy;
     private final SerializationStrategy serializationStrategy;
 
-    public MessageTest(OMMetaFactory metaFactory, String file, SerializationStrategy serializationStrategy) {
+    public TestSerialize(OMMetaFactory metaFactory, String file,
+            ExpansionStrategy expansionStrategy, SerializationStrategy serializationStrategy) {
         super(metaFactory);
         this.file = file;
+        this.expansionStrategy = expansionStrategy;
         this.serializationStrategy = serializationStrategy;
         addTestProperty("file", file);
+        expansionStrategy.addTestProperties(this);
         serializationStrategy.addTestProperties(this);
     }
 
     protected void runTest() throws Throwable {
         SOAPEnvelope soapEnvelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory,
                 AbstractTestCase.getTestResource(file), null).getSOAPEnvelope();
-        OMTestUtils.walkThrough(soapEnvelope);
+        expansionStrategy.apply(soapEnvelope);
         XMLAssert.assertXMLIdentical(XMLUnit.compareXML(
                 new InputSource(AbstractTestCase.getTestResource(file)),
                 serializationStrategy.serialize(soapEnvelope).getInputSource()), true);

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/ExpansionStrategy.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/ExpansionStrategy.java?rev=1437784&r1=1437783&r2=1437784&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/ExpansionStrategy.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/ExpansionStrategy.java Wed Jan 23 22:34:55 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.axiom.ts.strategy;
 
+import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axiom.om.ds.AbstractPullOMDataSource;
@@ -27,21 +28,25 @@ import org.apache.axiom.ts.strategy.seri
 import org.junit.Assert;
 
 /**
- * Defines if and how an {@link OMSourcedElement} is to be expanded during the execution of a test
- * case.
+ * Defines if and how an {@link OMContainer} is to be built or expanded during the execution of a
+ * test case.
  */
 public interface ExpansionStrategy extends Strategy {
     /**
-     * Don't expand the {@link OMSourcedElement}.
+     * Don't build the {@link OMContainer}.
      */
     ExpansionStrategy DONT_EXPAND = new ExpansionStrategy() {
         public void addTestProperties(AxiomTestCase testCase) {
             testCase.addTestProperty("expand", "no");
         }
 
-        public void apply(OMSourcedElement element) {
-            // Do nothing, but check that the element isn't expanded already
-            Assert.assertFalse(element.isExpanded());
+        public void apply(OMContainer container) {
+            if (container instanceof OMSourcedElement) {
+                // Do nothing, but check that the element isn't expanded already
+                Assert.assertFalse(((OMSourcedElement)container).isExpanded());
+            } else {
+                Assert.assertFalse(container.isComplete());
+            }
         }
 
         public boolean isConsumedAfterSerialization(boolean pushDS, boolean destructiveDS, SerializationStrategy serializationStrategy) {
@@ -54,17 +59,19 @@ public interface ExpansionStrategy exten
     };
     
     /**
-     * Partially expand the {@link OMSourcedElement}.
+     * Partially build the {@link OMContainer}.
      */
     ExpansionStrategy PARTIAL = new ExpansionStrategy() {
         public void addTestProperties(AxiomTestCase testCase) {
             testCase.addTestProperty("expand", "partially");
         }
         
-        public void apply(OMSourcedElement element) {
-            element.getFirstOMChild();
-            Assert.assertTrue(element.isExpanded());
-            Assert.assertFalse(element.isComplete());
+        public void apply(OMContainer container) {
+            container.getFirstOMChild();
+            if (container instanceof OMSourcedElement) {
+                Assert.assertTrue(((OMSourcedElement)container).isExpanded());
+            }
+            Assert.assertFalse(container.isComplete());
         }
 
         public boolean isConsumedAfterSerialization(boolean pushDS, boolean destructiveDS, SerializationStrategy serializationStrategy) {
@@ -77,18 +84,20 @@ public interface ExpansionStrategy exten
     };
 
     /**
-     * Fully expand the {@link OMSourcedElement}.
+     * Fully build the {@link OMContainer}.
      */
     ExpansionStrategy FULL = new ExpansionStrategy() {
         public void addTestProperties(AxiomTestCase testCase) {
             testCase.addTestProperty("expand", "fully");
         }
         
-        public void apply(OMSourcedElement element) {
-            element.getFirstOMChild();
-            element.build();
-            Assert.assertTrue(element.isExpanded());
-            Assert.assertTrue(element.isComplete());
+        public void apply(OMContainer container) {
+            container.getFirstOMChild();
+            container.build();
+            if (container instanceof OMSourcedElement) {
+                Assert.assertTrue(((OMSourcedElement)container).isExpanded());
+            }
+            Assert.assertTrue(container.isComplete());
         }
 
         public boolean isConsumedAfterSerialization(boolean pushDS, boolean destructiveDS, SerializationStrategy serializationStrategy) {
@@ -101,11 +110,11 @@ public interface ExpansionStrategy exten
     };
 
     /**
-     * Apply the expansion strategy to the given {@link OMSourcedElement}.
+     * Apply the expansion strategy to the given {@link OMContainer}.
      * 
      * @param element
      */
-    void apply(OMSourcedElement element);
+    void apply(OMContainer container);
     
     /**
      * Determines if serializing the {@link OMSourcedElement} after applying this expansion strategy

Modified: webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/Strategies.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/Strategies.java?rev=1437784&r1=1437783&r2=1437784&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/Strategies.java (original)
+++ webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/strategy/Strategies.java Wed Jan 23 22:34:55 2013
@@ -44,6 +44,12 @@ public final class Strategies {
         ElementContext.INCOMPLETE_ELEMENT,
     };
     
+    private static final ExpansionStrategy[] expansionStrategies = {
+        ExpansionStrategy.DONT_EXPAND,
+        ExpansionStrategy.PARTIAL,
+        ExpansionStrategy.FULL
+    };
+    
     private Strategies() {}
     
     public static SerializationStrategy[] getSerializationStrategies() {
@@ -53,4 +59,8 @@ public final class Strategies {
     public static ElementContext[] getElementContexts() {
         return (ElementContext[])elementContexts.clone();
     }
+    
+    public static ExpansionStrategy[] getExpansionStrategies() {
+        return (ExpansionStrategy[])expansionStrategies.clone();
+    }
 }