You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by ve...@apache.org on 2008/07/20 16:22:28 UTC
svn commit: r678276 - in
/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport:
./ jms/ mail/ nhttp/ vfs/
Author: veithen
Date: Sun Jul 20 07:22:27 2008
New Revision: 678276
URL: http://svn.apache.org/viewvc?rev=678276&view=rev
Log:
* TransportListenerTestTemplate: added generic tests for SOAP 1.2
* VFSTransportListenerTest: added tests for JMS messages without content type property
This should provide enough test coverage in BaseUtils#setSOAPEnvelope to safely implement the changes required to solve SYNAPSE-402.
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java?rev=678276&r1=678275&r2=678276&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/TransportListenerTestTemplate.java Sun Jul 20 07:22:27 2008
@@ -36,11 +36,13 @@
import org.apache.axiom.attachments.ByteArrayDataSource;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.OMText;
import org.apache.axiom.om.impl.MIMEOutputUtils;
import org.apache.axiom.om.util.UUIDGenerator;
+import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPBody;
import org.apache.axiom.soap.SOAPEnvelope;
@@ -205,26 +207,32 @@
protected abstract void checkMessageData(MessageData messageData) throws Exception;
}
- public static class SOAP11TestCaseImpl extends TransportListenerTestCase {
+ public static abstract class XMLMessageTestCase extends TransportListenerTestCase {
private final String text;
private final String charset;
- private final boolean pox;
- private SOAPFactory factory;
private OMElement orgElement;
+ protected OMFactory factory;
- public SOAP11TestCaseImpl(TestStrategy strategy, String baseName, String text, String charset, boolean pox) {
- super(strategy, baseName, (pox ? "application/xml" : "text/xml") + "; charset=\"" + charset + "\"");
+ public XMLMessageTestCase(TestStrategy strategy, String baseName, String baseContentType, String text, String charset) {
+ super(strategy, baseName, baseContentType + "; charset=\"" + charset + "\"");
this.text = text;
this.charset = charset;
- this.pox = pox;
}
-
+
@Override
protected void setUp() throws Exception {
- factory = OMAbstractFactory.getSOAP11Factory();
+ factory = getOMFactory();
orgElement = factory.createOMElement(new QName("root"));
orgElement.setText(text);
}
+
+ @Override
+ protected void checkMessageData(MessageData messageData) throws Exception {
+ SOAPEnvelope envelope = messageData.getEnvelope();
+ OMElement element = envelope.getBody().getFirstElement();
+ assertEquals(orgElement.getQName(), element.getQName());
+ assertEquals(text, element.getText());
+ }
@Override
protected void sendMessage(String endpointReference) throws Exception {
@@ -232,24 +240,67 @@
OMOutputFormat outputFormat = new OMOutputFormat();
outputFormat.setCharSetEncoding(charset);
outputFormat.setIgnoreXMLDeclaration(true);
- if (pox) {
- orgElement.serializeAndConsume(baos, outputFormat);
- } else {
- SOAPEnvelope orgEnvelope = factory.createSOAPEnvelope();
- SOAPBody orgBody = factory.createSOAPBody();
- orgBody.addChild(orgElement);
- orgEnvelope.addChild(orgBody);
- orgEnvelope.serializeAndConsume(baos, outputFormat);
- }
+ getMessage(orgElement).serializeAndConsume(baos, outputFormat);
strategy.sendMessage(endpointReference, contentType, baos.toByteArray());
}
+ protected abstract OMFactory getOMFactory();
+ protected abstract OMElement getMessage(OMElement payload);
+ }
+
+ public static abstract class SOAPTestCase extends XMLMessageTestCase {
+ public SOAPTestCase(TestStrategy strategy, String baseName, String baseContentType, String text, String charset) {
+ super(strategy, baseName, baseContentType, text, charset);
+ }
+
@Override
- protected void checkMessageData(MessageData messageData) throws Exception {
- SOAPEnvelope envelope = messageData.getEnvelope();
- OMElement element = envelope.getBody().getFirstElement();
- assertEquals(orgElement.getQName(), element.getQName());
- assertEquals(text, element.getText());
+ protected abstract SOAPFactory getOMFactory();
+
+ @Override
+ protected OMElement getMessage(OMElement payload) {
+ SOAPEnvelope envelope = ((SOAPFactory)factory).createSOAPEnvelope();
+ SOAPBody body = ((SOAPFactory)factory).createSOAPBody();
+ body.addChild(payload);
+ envelope.addChild(body);
+ return envelope;
+ }
+ }
+
+ public static class SOAP11TestCaseImpl extends SOAPTestCase {
+ public SOAP11TestCaseImpl(TestStrategy strategy, String baseName, String text, String charset) {
+ super(strategy, baseName, SOAP11Constants.SOAP_11_CONTENT_TYPE, text, charset);
+ }
+
+ @Override
+ protected SOAPFactory getOMFactory() {
+ return OMAbstractFactory.getSOAP11Factory();
+ }
+ }
+
+ public static class SOAP12TestCaseImpl extends SOAPTestCase {
+ public SOAP12TestCaseImpl(TestStrategy strategy, String baseName, String text, String charset) {
+ super(strategy, baseName, SOAP12Constants.SOAP_12_CONTENT_TYPE, text, charset);
+ }
+
+ @Override
+ protected SOAPFactory getOMFactory() {
+ return OMAbstractFactory.getSOAP12Factory();
+ }
+ }
+
+ public static class POXTestCaseImpl extends XMLMessageTestCase {
+ public POXTestCaseImpl(TestStrategy strategy, String baseName, String text, String charset) {
+ super(strategy, baseName, "application/xml", text, charset);
+ }
+
+ @Override
+ protected OMFactory getOMFactory() {
+ return OMAbstractFactory.getOMFactory();
+ }
+
+ @Override
+ protected OMElement getMessage(OMElement payload) {
+ return payload;
}
}
@@ -277,20 +328,23 @@
}
}
- private static final String testString = "\u00e0 peine arriv\u00e9s nous entr\u00e2mes dans sa chambre";
+ public static final String testString = "\u00e0 peine arriv\u00e9s nous entr\u00e2mes dans sa chambre";
private static final Random random = new Random();
- public static void addSOAP11Tests(final TestStrategy strategy, TestSuite suite) {
- suite.addTest(new SOAP11TestCaseImpl(strategy, "SOAP11ASCII", "test string", "us-ascii", false));
- suite.addTest(new SOAP11TestCaseImpl(strategy, "SOAP11UTF8", testString, "UTF-8", false));
- suite.addTest(new SOAP11TestCaseImpl(strategy, "SOAP11Latin1", testString, "ISO-8859-1", false));
+ public static void addSOAPTests(final TestStrategy strategy, TestSuite suite) {
+ suite.addTest(new SOAP11TestCaseImpl(strategy, "SOAP11ASCII", "test string", "us-ascii"));
+ suite.addTest(new SOAP11TestCaseImpl(strategy, "SOAP11UTF8", testString, "UTF-8"));
+ suite.addTest(new SOAP11TestCaseImpl(strategy, "SOAP11Latin1", testString, "ISO-8859-1"));
+ suite.addTest(new SOAP12TestCaseImpl(strategy, "SOAP12ASCII", "test string", "us-ascii"));
+ suite.addTest(new SOAP12TestCaseImpl(strategy, "SOAP12UTF8", testString, "UTF-8"));
+ suite.addTest(new SOAP12TestCaseImpl(strategy, "SOAP12Latin1", testString, "ISO-8859-1"));
}
public static void addPOXTests(final TestStrategy strategy, TestSuite suite) {
- suite.addTest(new SOAP11TestCaseImpl(strategy, "POXASCII", "test string", "us-ascii", true));
- suite.addTest(new SOAP11TestCaseImpl(strategy, "POXUTF8", testString, "UTF-8", true));
- suite.addTest(new SOAP11TestCaseImpl(strategy, "POXLatin1", testString, "ISO-8859-1", true));
+ suite.addTest(new POXTestCaseImpl(strategy, "POXASCII", "test string", "us-ascii"));
+ suite.addTest(new POXTestCaseImpl(strategy, "POXUTF8", testString, "UTF-8"));
+ suite.addTest(new POXTestCaseImpl(strategy, "POXLatin1", testString, "ISO-8859-1"));
}
// TODO: this test actually only makes sense if the transport supports a Content-Type header
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java?rev=678276&r1=678275&r2=678276&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSListenerTest.java Sun Jul 20 07:22:27 2008
@@ -43,6 +43,7 @@
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
+import org.apache.axis2.context.MessageContext;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.description.TransportInDescription;
import org.apache.synapse.transport.TransportListenerTestTemplate;
@@ -59,10 +60,13 @@
private final OMFactory factory = OMAbstractFactory.getOMFactory();
private final boolean useTopic;
+ private final boolean useContentTypeHeader;
- public TestStrategyImpl(boolean useTopic) {
- super(useTopic ? "Topic" : "Queue");
+ public TestStrategyImpl(boolean useTopic, boolean useContentTypeHeader) {
+ super((useTopic ? "Topic" : "Queue") +
+ (useContentTypeHeader ? "WithContentTypeHeader" : "WithoutContentTypeHeader"));
this.useTopic = useTopic;
+ this.useContentTypeHeader = useContentTypeHeader;
}
private OMElement createParameterElement(String name, String value) {
@@ -126,7 +130,9 @@
= connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
TopicPublisher publisher = session.createPublisher(topic);
BytesMessage message = session.createBytesMessage();
- message.setStringProperty(BaseConstants.CONTENT_TYPE, contentType);
+ if (useContentTypeHeader) {
+ message.setStringProperty(BaseConstants.CONTENT_TYPE, contentType);
+ }
message.writeBytes(content);
publisher.send(message);
} else {
@@ -138,7 +144,9 @@
= connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
QueueSender sender = session.createSender(queue);
BytesMessage message = session.createBytesMessage();
- message.setStringProperty(BaseConstants.CONTENT_TYPE, contentType);
+ if (useContentTypeHeader) {
+ message.setStringProperty(BaseConstants.CONTENT_TYPE, contentType);
+ }
message.writeBytes(content);
sender.send(message);
}
@@ -148,14 +156,25 @@
public static TestSuite suite() {
TestSuite suite = new TestSuite();
for (boolean useTopic : new boolean[] { false, true }) {
- TestStrategy strategy = new TestStrategyImpl(useTopic);
- addSOAP11Tests(strategy, suite);
- // TODO: POX tests don't work yet for JMS
- // addPOXTests(strategy, suite);
- addSwATests(strategy, suite);
- // TODO: these tests are temporarily disabled because of SYNAPSE-304
- // addTextPlainTests(strategy, suite);
- addBinaryTest(strategy, suite);
+ for (boolean useContentTypeHeader : new boolean[] { false, true }) {
+ TestStrategy strategy = new TestStrategyImpl(useTopic, useContentTypeHeader);
+ if (useContentTypeHeader) {
+ addSOAPTests(strategy, suite);
+ // TODO: POX tests don't work yet for JMS
+ // addPOXTests(strategy, suite);
+ addSwATests(strategy, suite);
+ } else {
+ // If no content type header is used, SwA can't be used and the JMS transport
+ // always uses the default charset encoding
+ suite.addTest(new SOAP11TestCaseImpl(strategy, "SOAP11", testString,
+ MessageContext.DEFAULT_CHAR_SET_ENCODING));
+ suite.addTest(new SOAP12TestCaseImpl(strategy, "SOAP12", testString,
+ MessageContext.DEFAULT_CHAR_SET_ENCODING));
+ }
+ // TODO: these tests are temporarily disabled because of SYNAPSE-304
+ // addTextPlainTests(strategy, suite);
+ addBinaryTest(strategy, suite);
+ }
}
return suite;
}
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java?rev=678276&r1=678275&r2=678276&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailTransportListenerTest.java Sun Jul 20 07:22:27 2008
@@ -81,7 +81,7 @@
public static TestSuite suite() {
TestSuite suite = new TestSuite();
TestStrategy strategy = new TestStrategyImpl();
- addSOAP11Tests(strategy, suite);
+ addSOAPTests(strategy, suite);
// TODO: POX tests don't work yet for mail transport
// addPOXTests(strategy, suite);
// Temporarily skip this test until we know why it fails.
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java?rev=678276&r1=678275&r2=678276&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/nhttp/HttpCoreNIOListenerTest.java Sun Jul 20 07:22:27 2008
@@ -59,7 +59,7 @@
public static TestSuite suite() {
TestSuite suite = new TestSuite();
TestStrategy strategy = new TestStrategyImpl();
- addSOAP11Tests(strategy, suite);
+ addSOAPTests(strategy, suite);
addPOXTests(strategy, suite);
addSwATests(strategy, suite);
addTextPlainTests(strategy, suite);
Modified: synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java?rev=678276&r1=678275&r2=678276&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java (original)
+++ synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java Sun Jul 20 07:22:27 2008
@@ -73,7 +73,7 @@
public static TestSuite suite() {
TestSuite suite = new TestSuite();
TestStrategy strategy = new TestStrategyImpl();
- addSOAP11Tests(strategy, suite);
+ addSOAPTests(strategy, suite);
addPOXTests(strategy, suite);
// Since VFS has no Content-Type header, SwA is not supported.
addTextPlainTests(strategy, suite);