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();
+ }
}