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/09/05 00:33:28 UTC
svn commit: r692284 - in
/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport:
jms/ mail/ nhttp/ testkit/ vfs/
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;
}