Author: veithen
Date: Sun Sep 7 09:22:14 2008
New Revision: 692890
URL: http://svn.apache.org/viewvc?rev=692890&view=rev
Log:
Transport test kit: Decoupled RESTTestCase from Axis and simplified type
parameters of AsyncMessageTestCase.
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuiteBuilder.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
Sun Sep 7 09:22:14 2008
@@ -37,7 +37,6 @@
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
import org.apache.synapse.transport.testkit.listener.MessageTestData;
import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
-import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.RESTMessage;
import org.apache.synapse.transport.testkit.message.XMLMessage;
import org.apache.synapse.transport.testkit.message.RESTMessage.Parameter;
@@ -157,7 +156,7 @@
addTest(new BinaryTestCase(channel, client, endpoint, resources));
}
- public void addRESTTests(AsyncChannel channel,
AsyncTestClient<RESTMessage> client, AsyncEndpoint<AxisMessage> endpoint,
Object... resources) {
+ public void addRESTTests(AsyncChannel channel,
AsyncTestClient<RESTMessage> client, AsyncEndpoint<RESTMessage> endpoint,
Object... resources) {
addTest(new RESTTestCase(channel, client, endpoint, restTestMessage1,
resources));
// TODO: regression test for SYNAPSE-431
// addTest(new RESTTestCase(env, channel, client, endpoint,
restTestMessage2));
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuiteBuilder.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuiteBuilder.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuiteBuilder.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuiteBuilder.java
Sun Sep 7 09:22:14 2008
@@ -84,9 +84,9 @@
private final ResourceList<AsyncTestClient<RESTMessage>> restAsyncClients
= new ResourceList<AsyncTestClient<RESTMessage>>();
private final ResourceList<AsyncTestClient<String>> stringAsyncClients =
new ResourceList<AsyncTestClient<String>>();
- private final ResourceList<AsyncEndpoint<AxisMessage>> axisAsyncEndpoints
= new ResourceList<AsyncEndpoint<AxisMessage>>();
private final ResourceList<AsyncEndpoint<byte[]>> byteAsyncEndpoints = new
ResourceList<AsyncEndpoint<byte[]>>();
private final ResourceList<AsyncEndpoint<XMLMessage>> xmlAsyncEndpoints =
new ResourceList<AsyncEndpoint<XMLMessage>>();
+ private final ResourceList<AsyncEndpoint<RESTMessage>> restAsyncEndpoints
= new ResourceList<AsyncEndpoint<RESTMessage>>();
private final ResourceList<AsyncEndpoint<String>> stringAsyncEndpoints =
new ResourceList<AsyncEndpoint<String>>();
private final ResourceList<RequestResponseChannel> requestResponseChannels
= new ResourceList<RequestResponseChannel>();
@@ -135,9 +135,9 @@
}
public void addAxisAsyncEndpoint(AsyncEndpoint<AxisMessage> endpoint,
Object... relatedResources) {
- axisAsyncEndpoints.add(endpoint, relatedResources);
byteAsyncEndpoints.add(adapt(endpoint, MessageDecoder.AXIS_TO_BYTE),
relatedResources);
xmlAsyncEndpoints.add(adapt(endpoint, MessageDecoder.AXIS_TO_XML),
relatedResources);
+ restAsyncEndpoints.add(adapt(endpoint, MessageDecoder.AXIS_TO_REST),
relatedResources);
stringAsyncEndpoints.add(adapt(endpoint,
MessageDecoder.AXIS_TO_STRING), relatedResources);
}
@@ -147,6 +147,10 @@
stringAsyncEndpoints.add(adapt(endpoint,
MessageDecoder.BYTE_TO_STRING), relatedResources);
}
+ public void addRESTAsyncEndpoint(AsyncEndpoint<RESTMessage> endpoint,
Object... relatedResources) {
+ restAsyncEndpoints.add(endpoint, relatedResources);
+ }
+
public void addRequestResponseChannel(RequestResponseChannel channel,
Object... relatedResources) {
requestResponseChannels.add(channel, relatedResources);
}
@@ -197,7 +201,7 @@
}
}
for (ResourceRelation<AsyncTestClient<RESTMessage>> client :
restAsyncClients) {
- for (ResourceRelation<AsyncEndpoint<AxisMessage>> endpoint :
axisAsyncEndpoints) {
+ for (ResourceRelation<AsyncEndpoint<RESTMessage>> endpoint :
restAsyncEndpoints) {
Object[] resources = merge(env, channel, client, endpoint);
suite.addRESTTests(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/message/MessageDecoder.java
Sun Sep 7 09:22:14 2008
@@ -21,6 +21,9 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
import javax.activation.DataHandler;
import javax.mail.internet.ContentType;
@@ -37,6 +40,7 @@
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
import org.apache.synapse.transport.base.BaseConstants;
+import org.apache.synapse.transport.testkit.message.RESTMessage.Parameter;
public interface MessageDecoder<T,U> {
MessageDecoder<AxisMessage,byte[]> AXIS_TO_BYTE =
@@ -90,6 +94,20 @@
return new
XMLMessage(message.getEnvelope().getBody().getFirstElement(), type,
attachments);
}
};
+
+ MessageDecoder<AxisMessage,RESTMessage> AXIS_TO_REST =
+ new MessageDecoder<AxisMessage,RESTMessage>() {
+
+ public RESTMessage decode(ContentType contentType, AxisMessage
message) throws Exception {
+ List<Parameter> parameters = new LinkedList<Parameter>();
+ OMElement content =
message.getEnvelope().getBody().getFirstElement();
+ for (Iterator<?> it = content.getChildElements(); it.hasNext(); ) {
+ OMElement child = (OMElement)it.next();
+ parameters.add(new Parameter(child.getLocalName(),
child.getText()));
+ }
+ return new RESTMessage(parameters.toArray(new
Parameter[parameters.size()]));
+ }
+ };
MessageDecoder<byte[],XMLMessage> BYTE_TO_XML =
new MessageDecoder<byte[],XMLMessage>() {
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/AsyncMessageTestCase.java
Sun Sep 7 09:22:14 2008
@@ -26,12 +26,12 @@
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
import org.apache.synapse.transport.testkit.tests.MessageTestCase;
-public abstract class AsyncMessageTestCase<M,N> extends MessageTestCase {
+public abstract class AsyncMessageTestCase<M> extends MessageTestCase {
private final AsyncTestClient<M> client;
- private final AsyncEndpoint<N> endpoint;
+ private final AsyncEndpoint<M> endpoint;
// TODO: maybe we don't need an explicit AsyncChannel
- public AsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<M>
client, AsyncEndpoint<N> endpoint, ContentType contentType, String charset,
Object... resources) {
+ public AsyncMessageTestCase(AsyncChannel channel, AsyncTestClient<M>
client, AsyncEndpoint<M> endpoint, ContentType contentType, String charset,
Object... resources) {
super(contentType, charset, resources);
this.client = client;
this.endpoint = endpoint;
@@ -42,20 +42,19 @@
@Override
protected void runTest() throws Throwable {
- M message = prepareMessage();
+ M expected = prepareMessage();
// Run the test.
- N messageData;
// contentTypeMode == ContentTypeMode.TRANSPORT ?
contentType : null);
- client.sendMessage(options, options.getBaseContentType(), message);
- messageData = endpoint.waitForMessage(8000).getData();
- if (messageData == null) {
+ client.sendMessage(options, options.getBaseContentType(), expected);
+ M actual = endpoint.waitForMessage(8000).getData();
+ if (actual == null) {
fail("Failed to get message");
}
- checkMessageData(message, messageData);
+ checkMessageData(expected, actual);
}
protected abstract M prepareMessage() throws Exception;
- protected abstract void checkMessageData(M message, N messageData) throws
Exception;
+ protected abstract void checkMessageData(M expected, M actual) throws
Exception;
}
\ No newline at end of file
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/BinaryTestCase.java
Sun Sep 7 09:22:14 2008
@@ -30,7 +30,7 @@
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncBinary")
-public class BinaryTestCase extends AsyncMessageTestCase<byte[],byte[]> {
+public class BinaryTestCase extends AsyncMessageTestCase<byte[]> {
private static final Random random = new Random();
public BinaryTestCase(AsyncChannel channel, AsyncTestClient<byte[]>
client, AsyncEndpoint<byte[]> endpoint, Object... resources) {
@@ -45,7 +45,7 @@
}
@Override
- protected void checkMessageData(byte[] message, byte[] messageData) throws
Exception {
- assertTrue(Arrays.equals(message, messageData));
+ protected void checkMessageData(byte[] expected, byte[] actual) throws
Exception {
+ assertTrue(Arrays.equals(expected, actual));
}
}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/LargeSOAPAsyncMessageTestCase.java
Sun Sep 7 09:22:14 2008
@@ -34,7 +34,7 @@
@Name("AsyncSOAPLarge")
// TODO: maybe we should use XMLUnit to construct these kind of tests
-public class LargeSOAPAsyncMessageTestCase extends
AsyncMessageTestCase<XMLMessage,XMLMessage> {
+public class LargeSOAPAsyncMessageTestCase extends
AsyncMessageTestCase<XMLMessage> {
public LargeSOAPAsyncMessageTestCase(AsyncChannel channel,
AsyncTestClient<XMLMessage> client, AsyncEndpoint<XMLMessage> endpoint,
Object... resources) {
super(channel, client, endpoint,
XMLMessage.Type.SOAP11.getContentType(), "UTF-8", resources);
}
@@ -52,9 +52,9 @@
}
@Override
- protected void checkMessageData(XMLMessage message, XMLMessage
messageData) throws Exception {
- OMElement element = messageData.getPayload();
- OMElement orgElement = message.getPayload();
+ protected void checkMessageData(XMLMessage expected, XMLMessage actual)
throws Exception {
+ OMElement element = actual.getPayload();
+ OMElement orgElement = expected.getPayload();
assertEquals(orgElement.getQName(), element.getQName());
assertEquals(1000, countChildren(element));
}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/RESTTestCase.java
Sun Sep 7 09:22:14 2008
@@ -21,23 +21,20 @@
import java.util.Arrays;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Set;
-import org.apache.axiom.om.OMElement;
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
-import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.RESTMessage;
import org.apache.synapse.transport.testkit.message.RESTMessage.Parameter;
import org.apache.synapse.transport.testkit.name.Name;
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("REST")
-public class RESTTestCase extends
AsyncMessageTestCase<RESTMessage,AxisMessage> {
+public class RESTTestCase extends AsyncMessageTestCase<RESTMessage> {
private final RESTMessage message;
- public RESTTestCase(AsyncChannel channel, AsyncTestClient<RESTMessage>
client, AsyncEndpoint<AxisMessage> endpoint, RESTMessage message, Object...
resources) {
+ public RESTTestCase(AsyncChannel channel, AsyncTestClient<RESTMessage>
client, AsyncEndpoint<RESTMessage> endpoint, RESTMessage message, Object...
resources) {
super(channel, client, endpoint, null, null, resources);
this.message = message;
}
@@ -48,13 +45,11 @@
}
@Override
- protected void checkMessageData(RESTMessage message, AxisMessage
messageData) throws Exception {
- OMElement content =
messageData.getEnvelope().getBody().getFirstElement();
- Set<Parameter> expected = new
HashSet<Parameter>(Arrays.asList(message.getParameters()));
- for (Iterator<?> it = content.getChildElements(); it.hasNext(); ) {
- OMElement child = (OMElement)it.next();
- assertTrue(expected.remove(new Parameter(child.getLocalName(),
child.getText())));
+ protected void checkMessageData(RESTMessage expected, RESTMessage actual)
throws Exception {
+ Set<Parameter> expectedParameters = new
HashSet<Parameter>(Arrays.asList(expected.getParameters()));
+ for (Parameter actualParameter : actual.getParameters()) {
+ assertTrue(expectedParameters.remove(actualParameter));
}
- assertTrue(expected.isEmpty());
+ assertTrue(expectedParameters.isEmpty());
}
}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/SwATestCase.java
Sun Sep 7 09:22:14 2008
@@ -39,7 +39,7 @@
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncSwA")
-public class SwATestCase extends AsyncMessageTestCase<XMLMessage,XMLMessage> {
+public class SwATestCase extends AsyncMessageTestCase<XMLMessage> {
private static final Random random = new Random();
private byte[] attachmentContent;
@@ -67,9 +67,9 @@
}
@Override
- protected void checkMessageData(XMLMessage message, XMLMessage
messageData) throws Exception {
+ protected void checkMessageData(XMLMessage expected, XMLMessage actual)
throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Attachments attachments = messageData.getAttachments();
+ Attachments attachments = actual.getAttachments();
DataHandler dataHandler = attachments.getDataHandler(contentID);
assertNotNull(dataHandler);
dataHandler.writeTo(baos);
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/TextPlainTestCase.java
Sun Sep 7 09:22:14 2008
@@ -29,7 +29,7 @@
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncTextPlain")
-public class TextPlainTestCase extends AsyncMessageTestCase<String,String> {
+public class TextPlainTestCase extends AsyncMessageTestCase<String> {
private final MessageTestData data;
public TextPlainTestCase(AsyncChannel channel, AsyncTestClient<String>
client, AsyncEndpoint<String> endpoint, MessageTestData data, Object...
resources) {
@@ -48,10 +48,10 @@
}
@Override
- protected void checkMessageData(String message, String messageData) throws
Exception {
+ protected void checkMessageData(String expected, String actual) throws
Exception {
// Some transport protocols add a newline at the end of the payload.
Therefore trim the
// strings before comparison.
// TODO: investigate this a bit further
- assertEquals(message.trim(), messageData.trim());
+ assertEquals(expected.trim(), actual.trim());
}
}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java?rev=692890&r1=692889&r2=692890&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/async/XMLAsyncMessageTestCase.java
Sun Sep 7 09:22:14 2008
@@ -24,11 +24,9 @@
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.synapse.transport.testkit.client.AsyncTestClient;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
import org.apache.synapse.transport.testkit.listener.MessageTestData;
-import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.XMLMessage;
import org.apache.synapse.transport.testkit.name.Key;
import org.apache.synapse.transport.testkit.name.Name;
@@ -36,7 +34,7 @@
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@Name("AsyncXML")
-public class XMLAsyncMessageTestCase extends
AsyncMessageTestCase<XMLMessage,XMLMessage> {
+public class XMLAsyncMessageTestCase extends AsyncMessageTestCase<XMLMessage> {
private final XMLMessage.Type xmlMessageType;
private final MessageTestData data;
@@ -65,9 +63,9 @@
}
@Override
- protected void checkMessageData(XMLMessage message, XMLMessage
messageData) throws Exception {
- OMElement element = messageData.getPayload();
- OMElement orgElement = message.getPayload();
+ protected void checkMessageData(XMLMessage expected, XMLMessage actual)
throws Exception {
+ OMElement element = actual.getPayload();
+ OMElement orgElement = expected.getPayload();
assertEquals(orgElement.getQName(), element.getQName());
assertEquals(data.getText(), element.getText());
}