Author: veithen
Date: Thu Sep 4 15:33:28 2008
New Revision: 692284
URL: http://svn.apache.org/viewvc?rev=692284&view=rev
Log:
Transport tests: Introduced TransportTestSuiteBuilder to automatically build a
test suite based on a set of environments, clients, channels and endpoints.
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTransportTest.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/vfs/VFSTransportTest.java
- copied, changed from r692195,
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java
Removed:
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/vfs/VFSTransportListenerTest.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportSenderTest.java
Modified:
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
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTransportTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTransportTest.java?rev=692284&view=auto
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTransportTest.java
(added)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/jms/JMSTransportTest.java
Thu Sep 4 15:33:28 2008
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.transport.jms;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
+import org.apache.synapse.transport.testkit.TransportTestSuite;
+import org.apache.synapse.transport.testkit.TransportTestSuiteBuilder;
+import org.apache.synapse.transport.testkit.client.axis2.AxisAsyncTestClient;
+import
org.apache.synapse.transport.testkit.client.axis2.AxisRequestResponseTestClient;
+import org.apache.synapse.transport.testkit.listener.AsyncChannel;
+import org.apache.synapse.transport.testkit.server.axis2.AxisAsyncEndpoint;
+import org.apache.synapse.transport.testkit.server.axis2.AxisEchoEndpoint;
+import org.apache.synapse.transport.testkit.server.axis2.AxisServer;
+import org.apache.synapse.transport.testkit.tests.misc.MinConcurrencyTest;
+
+public class JMSTransportTest extends TestCase {
+ public static TestSuite suite() throws Exception {
+ TransportTestSuite suite = new
TransportTestSuite(JMSTransportTest.class);
+
+ // SwA doesn't make sense with text messages
+ suite.addExclude("(&(test=AsyncSwA)(client=TextMessage))");
+ // SYNAPSE-304:
+ suite.addExclude("(&(test=AsyncTextPlain)(client=BytesMessage))");
+
+ TransportTestSuiteBuilder builder = new
TransportTestSuiteBuilder(suite);
+
+ TransportDescriptionFactory tdf = new JMSTransportDescriptionFactory();
+ JMSTestEnvironment[] environments = new JMSTestEnvironment[] { new
QpidTestEnvironment(), new ActiveMQTestEnvironment() };
+
+ for (JMSTestEnvironment env : environments) {
+ builder.addEnvironment(env, tdf);
+ }
+
+ builder.addAsyncChannel(new
JMSAsyncChannel(JMSConstants.DESTINATION_TYPE_QUEUE,
ContentTypeMode.TRANSPORT));
+ builder.addAsyncChannel(new
JMSAsyncChannel(JMSConstants.DESTINATION_TYPE_TOPIC,
ContentTypeMode.TRANSPORT));
+
+ builder.addAxisAsyncTestClient(new AxisAsyncTestClient());
+ builder.addAxisAsyncTestClient(new AxisAsyncTestClient(new
JMSAxisTestClientSetup(JMSConstants.JMS_BYTE_MESSAGE)));
+ builder.addAxisAsyncTestClient(new AxisAsyncTestClient(new
JMSAxisTestClientSetup(JMSConstants.JMS_TEXT_MESSAGE)));
+ builder.addByteArrayAsyncTestClient(new JMSBytesMessageClient());
+ builder.addStringAsyncTestClient(new JMSTextMessageClient());
+
+ builder.addAxisAsyncEndpoint(new AxisAsyncEndpoint());
+
+ builder.addRequestResponseChannel(new
JMSRequestResponseChannel(JMSConstants.DESTINATION_TYPE_QUEUE,
JMSConstants.DESTINATION_TYPE_QUEUE, ContentTypeMode.TRANSPORT));
+
+ builder.addAxisRequestResponseTestClient(new
AxisRequestResponseTestClient());
+
+ builder.addEchoEndpoint(new MockEchoEndpoint());
+ builder.addEchoEndpoint(new AxisEchoEndpoint());
+
+ for (JMSTestEnvironment env : new JMSTestEnvironment[] { new
QpidTestEnvironment(), new ActiveMQTestEnvironment() }) {
+ suite.addTest(new MinConcurrencyTest(AxisServer.INSTANCE, new
AsyncChannel[] {
+ new JMSAsyncChannel("endpoint1",
JMSConstants.DESTINATION_TYPE_QUEUE, ContentTypeMode.TRANSPORT),
+ new JMSAsyncChannel("endpoint2",
JMSConstants.DESTINATION_TYPE_QUEUE, ContentTypeMode.TRANSPORT) },
+ 2, false, env, tdf));
+ }
+
+
+ builder.build();
+
+ 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=692284&r1=692283&r2=692284&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
Thu Sep 4 15:33:28 2008
@@ -19,21 +19,12 @@
package org.apache.synapse.transport.mail;
-import static org.apache.synapse.transport.testkit.AdapterUtils.adapt;
-
-import java.util.LinkedList;
-import java.util.List;
-
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import org.apache.synapse.transport.testkit.AdapterUtils;
import org.apache.synapse.transport.testkit.TransportTestSuite;
-import org.apache.synapse.transport.testkit.client.AsyncTestClient;
+import org.apache.synapse.transport.testkit.TransportTestSuiteBuilder;
import org.apache.synapse.transport.testkit.client.axis2.AxisAsyncTestClient;
-import org.apache.synapse.transport.testkit.message.MessageDecoder;
-import org.apache.synapse.transport.testkit.message.MessageEncoder;
-import org.apache.synapse.transport.testkit.message.XMLMessage;
import org.apache.synapse.transport.testkit.server.axis2.AxisAsyncEndpoint;
import org.apache.synapse.transport.testkit.server.axis2.AxisEchoEndpoint;
import org.apache.synapse.transport.testkit.server.axis2.AxisServer;
@@ -54,27 +45,31 @@
// SYNAPSE-434
suite.addExclude("(test=MinConcurrency)");
- MailTestEnvironment env = new GreenMailTestEnvironment();
+ TransportTestSuiteBuilder builder = new
TransportTestSuiteBuilder(suite);
+
+ GreenMailTestEnvironment env = new GreenMailTestEnvironment();
+
+ builder.addEnvironment(env);
- AxisAsyncEndpoint asyncEndpoint = new AxisAsyncEndpoint();
MailChannel channel = new MailChannel();
- suite.addPOXTests(channel, adapt(new MailRequestResponseClient(new
FlatLayout()), MessageEncoder.XML_TO_BYTE, MessageDecoder.BYTE_TO_XML), new
AxisEchoEndpoint(), env);
- List<MailAsyncClient> clients = new LinkedList<MailAsyncClient>();
- clients.add(new MailAsyncClient(new FlatLayout()));
- clients.add(new MailAsyncClient(new MultipartLayout()));
- for (MailAsyncClient client : clients) {
- AsyncTestClient<XMLMessage> xmlClient = adapt(client,
MessageEncoder.XML_TO_BYTE);
- suite.addSOAPTests(channel, xmlClient, adapt(new
AxisAsyncEndpoint(), MessageDecoder.AXIS_TO_XML), env);
- suite.addPOXTests(channel, xmlClient, adapt(new
AxisAsyncEndpoint(), MessageDecoder.AXIS_TO_XML), env);
- suite.addSwATests(channel, xmlClient, adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_XML), env);
- suite.addTextPlainTests(channel, adapt(client,
MessageEncoder.STRING_TO_BYTE), AdapterUtils.adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_STRING), env);
- suite.addBinaryTest(channel, client, adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_BYTE), env);
- }
- AxisAsyncTestClient axisClient = new AxisAsyncTestClient();
- suite.addSOAPTests(channel, adapt(axisClient,
MessageEncoder.XML_TO_AXIS), adapt(new AxisAsyncEndpoint(),
MessageDecoder.AXIS_TO_XML), env);
- suite.addPOXTests(channel, adapt(axisClient,
MessageEncoder.XML_TO_AXIS), adapt(new AxisAsyncEndpoint(),
MessageDecoder.AXIS_TO_XML), env);
- suite.addTextPlainTests(channel, adapt(axisClient,
MessageEncoder.TEXT_WRAPPER), AdapterUtils.adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_STRING), env);
- suite.addBinaryTest(channel, adapt(axisClient,
MessageEncoder.BINARY_WRAPPER), adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_BYTE), env);
+
+ builder.addAsyncChannel(channel);
+
+ builder.addAxisAsyncTestClient(new AxisAsyncTestClient());
+ builder.addByteArrayAsyncTestClient(new MailAsyncClient(new
FlatLayout()));
+ builder.addByteArrayAsyncTestClient(new MailAsyncClient(new
MultipartLayout()));
+
+ builder.addAxisAsyncEndpoint(new AxisAsyncEndpoint());
+
+ builder.addRequestResponseChannel(channel);
+
+ builder.addByteArrayRequestResponseTestClient(new
MailRequestResponseClient(new FlatLayout()));
+ builder.addByteArrayRequestResponseTestClient(new
MailRequestResponseClient(new MultipartLayout()));
+
+ builder.addEchoEndpoint(new AxisEchoEndpoint());
+
+ builder.build();
+
suite.addTest(new MinConcurrencyTest(AxisServer.INSTANCE, new
MailChannel[] { new MailChannel(), new MailChannel() }, 2, true, env));
return suite;
}
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=692284&r1=692283&r2=692284&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
Thu Sep 4 15:33:28 2008
@@ -19,11 +19,6 @@
package org.apache.synapse.transport.nhttp;
-import static org.apache.synapse.transport.testkit.AdapterUtils.adapt;
-
-import java.util.LinkedList;
-import java.util.List;
-
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -34,13 +29,12 @@
import org.apache.synapse.transport.testkit.SimpleTransportDescriptionFactory;
import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
import org.apache.synapse.transport.testkit.TransportTestSuite;
-import org.apache.synapse.transport.testkit.client.AsyncTestClient;
+import org.apache.synapse.transport.testkit.TransportTestSuiteBuilder;
import org.apache.synapse.transport.testkit.client.axis2.AxisAsyncTestClient;
+import
org.apache.synapse.transport.testkit.client.axis2.AxisRequestResponseTestClient;
import org.apache.synapse.transport.testkit.listener.AsyncChannel;
-import org.apache.synapse.transport.testkit.message.MessageDecoder;
-import org.apache.synapse.transport.testkit.message.MessageEncoder;
-import org.apache.synapse.transport.testkit.message.XMLMessage;
import org.apache.synapse.transport.testkit.server.axis2.AxisAsyncEndpoint;
+import org.apache.synapse.transport.testkit.server.axis2.AxisEchoEndpoint;
import org.apache.synapse.transport.testkit.server.axis2.AxisServer;
import org.apache.synapse.transport.testkit.tests.misc.MinConcurrencyTest;
@@ -48,7 +42,8 @@
public static TestSuite suite() throws Exception {
TransportTestSuite suite = new
TransportTestSuite(HttpCoreNIOListenerTest.class);
-
suite.addExclude("(&(client=*)(endpoint=*)(!(|(client=axis)(endpoint=axis))))");
+ // These tests don't work because of a problem similar to SYNAPSE-418
+ suite.addExclude("(test=EchoXML)");
TransportDescriptionFactory tdfNIO =
new SimpleTransportDescriptionFactory("http",
HttpCoreNIOListener.class,
@@ -68,26 +63,30 @@
// Change to tdfSimple if you want to check the behavior of Axis'
blocking HTTP transport
TransportDescriptionFactory tdf = tdfNIO;
- AxisAsyncEndpoint asyncEndpoint = new AxisAsyncEndpoint();
- JettyAsyncEndpoint jettyAsyncEndpoint = new JettyAsyncEndpoint();
-// AxisEchoEndpointFactory echoEndpointFactory = new
AxisEchoEndpointFactory();
+ TransportTestSuiteBuilder builder = new
TransportTestSuiteBuilder(suite);
+
+ builder.addEnvironment(tdf);
+
HttpChannel channel = new HttpChannel();
- JavaNetClient javaNetClient = new JavaNetClient();
- List<AsyncTestClient<XMLMessage>> clients = new
LinkedList<AsyncTestClient<XMLMessage>>();
- clients.add(adapt(javaNetClient, MessageEncoder.XML_TO_BYTE));
- clients.add(adapt(new AxisAsyncTestClient(new
HttpAxisTestClientSetup(false)), MessageEncoder.XML_TO_AXIS));
- clients.add(adapt(new AxisAsyncTestClient(new
HttpAxisTestClientSetup(true)), MessageEncoder.XML_TO_AXIS));
- for (AsyncTestClient<XMLMessage> client : clients) {
- suite.addSOAPTests(channel, client, adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_XML), tdf);
- suite.addPOXTests(channel, client, adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_XML), tdf);
- suite.addSOAPTests(channel, client, adapt(jettyAsyncEndpoint,
MessageDecoder.BYTE_TO_XML), tdf);
- suite.addPOXTests(channel, client, adapt(jettyAsyncEndpoint,
MessageDecoder.BYTE_TO_XML), tdf);
- }
-// suite.addPOXTests(channel, adapt(new
AxisRequestResponseTestClient(), MessageConverter.XML_TO_AXIS,
MessageConverter.AXIS_TO_XML), echoEndpointFactory, env, axisServer, tdf);
- suite.addSwATests(channel, adapt(javaNetClient,
MessageEncoder.XML_TO_BYTE), adapt(asyncEndpoint, MessageDecoder.AXIS_TO_XML),
tdf);
- suite.addTextPlainTests(channel, adapt(javaNetClient,
MessageEncoder.STRING_TO_BYTE), adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_STRING), tdf);
- suite.addBinaryTest(channel, javaNetClient, adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_BYTE), tdf);
- suite.addRESTTests(channel, new JavaNetRESTClient(), asyncEndpoint,
tdf);
+
+ builder.addAsyncChannel(channel);
+
+ builder.addByteArrayAsyncTestClient(new JavaNetClient());
+ builder.addAxisAsyncTestClient(new AxisAsyncTestClient(new
HttpAxisTestClientSetup(false)));
+ builder.addAxisAsyncTestClient(new AxisAsyncTestClient(new
HttpAxisTestClientSetup(true)));
+ builder.addRESTAsyncTestClient(new JavaNetRESTClient());
+
+ builder.addAxisAsyncEndpoint(new AxisAsyncEndpoint());
+ builder.addByteArrayAsyncEndpoint(new JettyAsyncEndpoint());
+
+ builder.addRequestResponseChannel(channel);
+
+ builder.addAxisRequestResponseTestClient(new
AxisRequestResponseTestClient());
+
+ builder.addEchoEndpoint(new AxisEchoEndpoint());
+
+ builder.build();
+
suite.addTest(new MinConcurrencyTest(AxisServer.INSTANCE, new
AsyncChannel[] { new HttpChannel(), new HttpChannel() }, 2, false, tdf));
return suite;
}
Added:
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=692284&view=auto
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuiteBuilder.java
(added)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuiteBuilder.java
Thu Sep 4 15:33:28 2008
@@ -0,0 +1,225 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.synapse.transport.testkit;
+
+import static org.apache.synapse.transport.testkit.AdapterUtils.adapt;
+
+import java.text.ParseException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.synapse.transport.testkit.client.AsyncTestClient;
+import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
+import org.apache.synapse.transport.testkit.listener.AsyncChannel;
+import org.apache.synapse.transport.testkit.listener.RequestResponseChannel;
+import org.apache.synapse.transport.testkit.message.AxisMessage;
+import org.apache.synapse.transport.testkit.message.MessageDecoder;
+import org.apache.synapse.transport.testkit.message.MessageEncoder;
+import org.apache.synapse.transport.testkit.message.RESTMessage;
+import org.apache.synapse.transport.testkit.message.XMLMessage;
+import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
+import org.apache.synapse.transport.testkit.server.Endpoint;
+import
org.apache.synapse.transport.testkit.tests.async.LargeSOAPAsyncMessageTestCase;
+
+public class TransportTestSuiteBuilder {
+ static class ResourceRelation<T> {
+ private final T primaryResource;
+ private final Object[] relatedResources;
+
+ public ResourceRelation(T primaryResource, Object... relatedResources)
{
+ this.primaryResource = primaryResource;
+ this.relatedResources = relatedResources;
+ }
+
+ public T getPrimaryResource() {
+ return primaryResource;
+ }
+
+ public Object[] getRelatedResources() {
+ return relatedResources;
+ }
+ }
+
+ static class ResourceList<T> implements Iterable<ResourceRelation<T>> {
+ private final List<ResourceRelation<T>> list = new
LinkedList<ResourceRelation<T>>();
+
+ public void add(T primaryResource, Object... relatedResources) {
+ list.add(new ResourceRelation<T>(primaryResource,
relatedResources));
+ }
+
+ public Iterator<ResourceRelation<T>> iterator() {
+ return list.iterator();
+ }
+ }
+
+ private final TransportTestSuite suite;
+
+ private final List<Object[]> environments = new LinkedList<Object[]>();
+
+ private final ResourceList<AsyncChannel> asyncChannels = new
ResourceList<AsyncChannel>();
+
+ private final ResourceList<AsyncTestClient<byte[]>> byteAsyncClients = new
ResourceList<AsyncTestClient<byte[]>>();
+ private final ResourceList<AsyncTestClient<XMLMessage>> xmlAsyncClients =
new ResourceList<AsyncTestClient<XMLMessage>>();
+ 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<String>> stringAsyncEndpoints =
new ResourceList<AsyncEndpoint<String>>();
+
+ private final ResourceList<RequestResponseChannel> requestResponseChannels
= new ResourceList<RequestResponseChannel>();
+
+ private final
ResourceList<RequestResponseTestClient<XMLMessage,XMLMessage>>
xmlRequestResponseClients = new
ResourceList<RequestResponseTestClient<XMLMessage,XMLMessage>>();
+
+ private final ResourceList<Endpoint> echoEndpoints = new
ResourceList<Endpoint>();
+
+ public TransportTestSuiteBuilder(TransportTestSuite suite) {
+ this.suite = suite;
+ try {
+ // We only want tests with client and/or endpoint based on Axis
+
suite.addExclude("(&(client=*)(endpoint=*)(!(|(client=axis)(endpoint=axis))))");
+ } catch (ParseException ex) {
+ throw new Error(ex);
+ }
+ }
+
+ public void addEnvironment(Object... resources) {
+ environments.add(resources);
+ }
+
+ public void addAsyncChannel(AsyncChannel channel, Object...
relatedResources) {
+ asyncChannels.add(channel, relatedResources);
+ }
+
+ public void addAxisAsyncTestClient(AsyncTestClient<AxisMessage> client,
Object... relatedResources) {
+ byteAsyncClients.add(adapt(client, MessageEncoder.BINARY_WRAPPER),
relatedResources);
+ xmlAsyncClients.add(adapt(client, MessageEncoder.XML_TO_AXIS),
relatedResources);
+ stringAsyncClients.add(adapt(client, MessageEncoder.TEXT_WRAPPER),
relatedResources);
+ }
+
+ public void addByteArrayAsyncTestClient(AsyncTestClient<byte[]> client,
Object... relatedResources) {
+ byteAsyncClients.add(client, relatedResources);
+ xmlAsyncClients.add(adapt(client, MessageEncoder.XML_TO_BYTE),
relatedResources);
+ stringAsyncClients.add(adapt(client, MessageEncoder.STRING_TO_BYTE),
relatedResources);
+ }
+
+ public void addRESTAsyncTestClient(AsyncTestClient<RESTMessage> client,
Object... relatedResources) {
+ restAsyncClients.add(client, relatedResources);
+ }
+
+ public void addStringAsyncTestClient(AsyncTestClient<String> client,
Object... relatedResources) {
+ xmlAsyncClients.add(adapt(client, MessageEncoder.XML_TO_STRING),
relatedResources);
+ stringAsyncClients.add(client, relatedResources);
+ }
+
+ 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);
+ stringAsyncEndpoints.add(adapt(endpoint,
MessageDecoder.AXIS_TO_STRING), relatedResources);
+ }
+
+ public void addByteArrayAsyncEndpoint(AsyncEndpoint<byte[]> endpoint,
Object... relatedResources) {
+ byteAsyncEndpoints.add(endpoint, relatedResources);
+ xmlAsyncEndpoints.add(adapt(endpoint, MessageDecoder.BYTE_TO_XML),
relatedResources);
+ stringAsyncEndpoints.add(adapt(endpoint,
MessageDecoder.BYTE_TO_STRING), relatedResources);
+ }
+
+ public void addRequestResponseChannel(RequestResponseChannel channel,
Object... relatedResources) {
+ requestResponseChannels.add(channel, relatedResources);
+ }
+
+ public void
addAxisRequestResponseTestClient(RequestResponseTestClient<AxisMessage,AxisMessage>
client, Object... relatedResources) {
+ xmlRequestResponseClients.add(adapt(client,
MessageEncoder.XML_TO_AXIS, MessageDecoder.AXIS_TO_XML), relatedResources);
+ }
+
+ public void
addByteArrayRequestResponseTestClient(RequestResponseTestClient<byte[],byte[]>
client, Object... relatedResources) {
+ xmlRequestResponseClients.add(adapt(client,
MessageEncoder.XML_TO_BYTE, MessageDecoder.BYTE_TO_XML), relatedResources);
+ }
+
+ public void addEchoEndpoint(Endpoint endpoint, Object... relatedResources)
{
+ echoEndpoints.add(endpoint, relatedResources);
+ }
+
+ private Object[] merge(Object[] environment, ResourceRelation<?>...
resourceRelations) {
+ Set<Object> resources = new LinkedHashSet<Object>();
+ resources.addAll(Arrays.asList(environment));
+ for (ResourceRelation<?> resourceRelation : resourceRelations) {
+
resources.addAll(Arrays.asList(resourceRelation.getRelatedResources()));
+ }
+ return resources.toArray();
+ }
+
+ private void build(Object[] env) {
+ for (ResourceRelation<AsyncChannel> channel : asyncChannels) {
+ for (ResourceRelation<AsyncTestClient<XMLMessage>> client :
xmlAsyncClients) {
+ for (ResourceRelation<AsyncEndpoint<XMLMessage>> endpoint :
xmlAsyncEndpoints) {
+ Object[] resources = merge(env, channel, client, endpoint);
+ suite.addSOAPTests(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
+ suite.addPOXTests(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
+ suite.addSwATests(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
+ // Regression test for SYNAPSE-423:
+ suite.addTest(new
LargeSOAPAsyncMessageTestCase(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources));
+ }
+ }
+ for (ResourceRelation<AsyncTestClient<String>> client :
stringAsyncClients) {
+ for (ResourceRelation<AsyncEndpoint<String>> endpoint :
stringAsyncEndpoints) {
+ Object[] resources = merge(env, channel, client, endpoint);
+ suite.addTextPlainTests(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
+ }
+ }
+ for (ResourceRelation<AsyncTestClient<byte[]>> client :
byteAsyncClients) {
+ for (ResourceRelation<AsyncEndpoint<byte[]>> endpoint :
byteAsyncEndpoints) {
+ Object[] resources = merge(env, channel, client, endpoint);
+ suite.addBinaryTest(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
+ }
+ }
+ for (ResourceRelation<AsyncTestClient<RESTMessage>> client :
restAsyncClients) {
+ for (ResourceRelation<AsyncEndpoint<AxisMessage>> endpoint :
axisAsyncEndpoints) {
+ Object[] resources = merge(env, channel, client, endpoint);
+ suite.addRESTTests(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
+ }
+ }
+ }
+ for (ResourceRelation<RequestResponseChannel> channel :
requestResponseChannels) {
+ for
(ResourceRelation<RequestResponseTestClient<XMLMessage,XMLMessage>> client :
xmlRequestResponseClients) {
+ for (ResourceRelation<Endpoint> endpoint : echoEndpoints) {
+ Object[] resources = merge(env, channel, client, endpoint);
+ suite.addPOXTests(channel.getPrimaryResource(),
client.getPrimaryResource(), endpoint.getPrimaryResource(), resources);
+ }
+ }
+ }
+ }
+
+ public void build() {
+ if (environments.isEmpty()) {
+ build(new Object[0]);
+ } else {
+ for (Object[] env : environments) {
+ build(env);
+ }
+ }
+ }
+}
Copied:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportTest.java
(from r692195,
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/VFSTransportTest.java?p2=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportTest.java&p1=synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/vfs/VFSTransportListenerTest.java&r1=692195&r2=692284&rev=692284&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/VFSTransportTest.java
Thu Sep 4 15:33:28 2008
@@ -19,11 +19,7 @@
package org.apache.synapse.transport.vfs;
-import static org.apache.synapse.transport.testkit.AdapterUtils.adapt;
-
import java.io.File;
-import java.util.LinkedList;
-import java.util.List;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -31,42 +27,40 @@
import org.apache.synapse.transport.testkit.SimpleTransportDescriptionFactory;
import org.apache.synapse.transport.testkit.TransportDescriptionFactory;
import org.apache.synapse.transport.testkit.TransportTestSuite;
-import org.apache.synapse.transport.testkit.client.AsyncTestClient;
+import org.apache.synapse.transport.testkit.TransportTestSuiteBuilder;
import org.apache.synapse.transport.testkit.client.axis2.AxisAsyncTestClient;
-import org.apache.synapse.transport.testkit.message.MessageDecoder;
-import org.apache.synapse.transport.testkit.message.MessageEncoder;
-import org.apache.synapse.transport.testkit.message.XMLMessage;
import org.apache.synapse.transport.testkit.server.axis2.AxisAsyncEndpoint;
import
org.apache.synapse.transport.testkit.server.axis2.ContentTypeServiceConfigurator;
-import
org.apache.synapse.transport.testkit.tests.async.LargeSOAPAsyncMessageTestCase;
/**
* TransportListenerTestTemplate implementation for the VFS transport.
*/
-public class VFSTransportListenerTest extends TestCase {
- public static TestSuite suite() {
- // TODO: the VFS listener doesn't like reuseServer == true...
- TransportTestSuite suite = new
TransportTestSuite(VFSTransportListenerTest.class, false);
+public class VFSTransportTest extends TestCase {
+ public static TestSuite suite() throws Exception {
+ // TODO: the VFS listener doesn't like reuseResources == true...
+ TransportTestSuite suite = new
TransportTestSuite(VFSTransportTest.class, false);
+
+ // Since VFS has no Content-Type header, SwA is not supported.
+ suite.addExclude("(test=AsyncSwA)");
+
TransportDescriptionFactory tdf =
new SimpleTransportDescriptionFactory("vfs",
VFSTransportListener.class,
VFSTransportSender.class);
- VFSTestEnvironment env = new VFSTestEnvironment(new
File("target/vfs3"));
- AxisAsyncEndpoint asyncEndpoint = new AxisAsyncEndpoint();
- VFSFileChannel channel = new VFSFileChannel("req/in");
- VFSClient vfsClient = new VFSClient();
- List<AsyncTestClient<XMLMessage>> clients = new
LinkedList<AsyncTestClient<XMLMessage>>();
- clients.add(adapt(vfsClient, MessageEncoder.XML_TO_BYTE));
- clients.add(adapt(new AxisAsyncTestClient(),
MessageEncoder.XML_TO_AXIS));
- ContentTypeServiceConfigurator cfgtr = new
ContentTypeServiceConfigurator("transport.vfs.ContentType");
- for (AsyncTestClient<XMLMessage> client : clients) {
- suite.addSOAPTests(channel, client, adapt(new AxisAsyncEndpoint(),
MessageDecoder.AXIS_TO_XML), env, tdf, cfgtr);
- suite.addPOXTests(channel, client, adapt(new AxisAsyncEndpoint(),
MessageDecoder.AXIS_TO_XML), env, tdf, cfgtr);
- // Since VFS has no Content-Type header, SwA is not supported.
- }
- suite.addTextPlainTests(channel, adapt(vfsClient,
MessageEncoder.STRING_TO_BYTE), adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_STRING), env, tdf, cfgtr);
- suite.addBinaryTest(channel, vfsClient, adapt(asyncEndpoint,
MessageDecoder.AXIS_TO_BYTE), env, tdf, cfgtr);
- // Regression test for SYNAPSE-423:
- suite.addTest(new LargeSOAPAsyncMessageTestCase(channel,
adapt(vfsClient, MessageEncoder.XML_TO_BYTE), adapt(new AxisAsyncEndpoint(),
MessageDecoder.AXIS_TO_XML), env, tdf, cfgtr));
+
+ TransportTestSuiteBuilder builder = new
TransportTestSuiteBuilder(suite);
+
+ builder.addEnvironment(new VFSTestEnvironment(new
File("target/vfs3")), tdf);
+
+ builder.addAsyncChannel(new VFSFileChannel("req/in"));
+
+ builder.addAxisAsyncTestClient(new AxisAsyncTestClient());
+ builder.addByteArrayAsyncTestClient(new VFSClient());
+
+ builder.addAxisAsyncEndpoint(new AxisAsyncEndpoint(), new
ContentTypeServiceConfigurator("transport.vfs.ContentType"));
+ builder.addByteArrayAsyncEndpoint(new VFSMockAsyncEndpoint());
+
+ builder.build();
+
// suite.addTest(new MinConcurrencyTest(server, new AsyncChannel[] {
new VFSFileChannel("req/in1"), new VFSFileChannel("req/in2") }, 1, true, env,
tdf));
return suite;
}