Author: veithen
Date: Mon Sep 22 15:06:49 2008
New Revision: 698019
URL: http://svn.apache.org/viewvc?rev=698019&view=rev
Log:
Mail transport tests: Added assertions on From/To headers. Some are not yet
enabled because the mail transport has a bug that causes an incorrect From
header to be set on response messages.
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailMessageContextValidator.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/MessageContextValidator.java
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.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/testkit/axis2/client/AxisRequestResponseTestClient.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailMessageContextValidator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailMessageContextValidator.java?rev=698019&view=auto
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailMessageContextValidator.java
(added)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailMessageContextValidator.java
Mon Sep 22 15:06:49 2008
@@ -0,0 +1,54 @@
+/*
+ * 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.mail;
+
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.mail.MailConstants;
+import org.apache.synapse.transport.testkit.axis2.MessageContextValidator;
+
+public class MailMessageContextValidator extends Assert implements
MessageContextValidator {
+ public static final MailMessageContextValidator INSTANCE = new
MailMessageContextValidator();
+
+ private MailChannel channel;
+
+ private MailMessageContextValidator() {}
+
+ @SuppressWarnings("unused")
+ private void setUp(MailChannel channel) {
+ this.channel = channel;
+ }
+
+ public void validate(MessageContext msgContext, boolean isResponse) throws
Exception {
+ Map<?,?> trpHeaders =
(Map<?,?>)msgContext.getProperty(MessageContext.TRANSPORT_HEADERS);
+ String from = (String)trpHeaders.get(MailConstants.MAIL_HEADER_FROM);
+ String to = (String)trpHeaders.get(MailConstants.MAIL_HEADER_TO);
+ if (isResponse) {
+ assertEquals(channel.getSender().getAddress(), to);
+ assertEquals(channel.getRecipient().getAddress(), from);
+ } else {
+ assertEquals(channel.getSender().getAddress(), from);
+ assertEquals(channel.getRecipient().getAddress(), to);
+ }
+ }
+}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java?rev=698019&r1=698018&r2=698019&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/mail/MailRequestResponseClient.java
Mon Sep 22 15:06:49 2008
@@ -29,6 +29,7 @@
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.ContentType;
+import javax.mail.internet.InternetAddress;
import junit.framework.Assert;
@@ -42,6 +43,7 @@
public class MailRequestResponseClient extends MailClient implements
RequestResponseTestClient<byte[],byte[]> {
private static final Log log =
LogFactory.getLog(MailRequestResponseClient.class);
+ private MailChannel channel;
private Store store;
public MailRequestResponseClient(MessageLayout layout) {
@@ -50,6 +52,7 @@
@SuppressWarnings("unused")
private void setUp(MailTestEnvironment env, MailChannel channel) throws
MessagingException {
+ this.channel = channel;
Session session = channel.getReplySession();
session.setDebug(log.isTraceEnabled());
store = session.getStore(env.getProtocol());
@@ -67,6 +70,11 @@
String msgId = sendMessage(contentType, message);
Message reply = waitForReply(msgId);
Assert.assertNotNull("No response received", reply);
+ Assert.assertEquals(channel.getSender().getAddress(),
+
((InternetAddress)reply.getRecipients(Message.RecipientType.TO)[0]).getAddress());
+ // TODO: enable this once the corresponding bug in the mail transport
is corrected
+// Assert.assertEquals(channel.getRecipient().getAddress(),
+//
((InternetAddress)reply.getFrom()[0]).getAddress());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
reply.getDataHandler().writeTo(baos);
return new IncomingMessage<byte[]>(new
ContentType(reply.getContentType()), baos.toByteArray());
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=698019&r1=698018&r2=698019&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
Mon Sep 22 15:06:49 2008
@@ -48,8 +48,8 @@
TransportTestSuiteBuilder builder = new
TransportTestSuiteBuilder(suite);
- builder.addEnvironment(new GreenMailTestEnvironment("pop3"));
- builder.addEnvironment(new GreenMailTestEnvironment("imap"));
+ builder.addEnvironment(new GreenMailTestEnvironment("pop3"),
MailMessageContextValidator.INSTANCE);
+ builder.addEnvironment(new GreenMailTestEnvironment("imap"),
MailMessageContextValidator.INSTANCE);
MailChannel channel = new MailChannel();
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/MessageContextValidator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/MessageContextValidator.java?rev=698019&view=auto
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/MessageContextValidator.java
(added)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/MessageContextValidator.java
Mon Sep 22 15:06:49 2008
@@ -0,0 +1,26 @@
+/*
+ * 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.axis2;
+
+import org.apache.axis2.context.MessageContext;
+
+public interface MessageContextValidator {
+ void validate(MessageContext msgContext, boolean isResponse) throws
Exception;
+}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/client/AxisRequestResponseTestClient.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/client/AxisRequestResponseTestClient.java?rev=698019&r1=698018&r2=698019&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/client/AxisRequestResponseTestClient.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/client/AxisRequestResponseTestClient.java
Mon Sep 22 15:06:49 2008
@@ -27,17 +27,28 @@
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.synapse.transport.testkit.axis2.MessageContextValidator;
import org.apache.synapse.transport.testkit.client.ClientOptions;
import org.apache.synapse.transport.testkit.client.RequestResponseTestClient;
import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.IncomingMessage;
public class AxisRequestResponseTestClient extends AxisTestClient implements
RequestResponseTestClient<AxisMessage,AxisMessage> {
+ private MessageContextValidator[] validators;
+
+ @SuppressWarnings("unused")
+ private void setUp(MessageContextValidator[] validators) {
+ this.validators = validators;
+ }
+
public IncomingMessage<AxisMessage> sendMessage(ClientOptions options,
ContentType contentType, AxisMessage message) throws Exception {
OperationClient mepClient = createClient(options, message,
ServiceClient.ANON_OUT_IN_OP);
mepClient.execute(true);
MessageContext responseMsgContext =
mepClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
Assert.assertFalse(responseMsgContext.isServerSide());
+ for (MessageContextValidator validator : validators) {
+ validator.validate(responseMsgContext, true);
+ }
return new IncomingMessage<AxisMessage>(null, new
AxisMessage(responseMsgContext));
}
}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java?rev=698019&r1=698018&r2=698019&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java
Mon Sep 22 15:06:49 2008
@@ -32,6 +32,7 @@
import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.InOnlyAxisOperation;
import org.apache.axis2.engine.MessageReceiver;
+import org.apache.synapse.transport.testkit.axis2.MessageContextValidator;
import org.apache.synapse.transport.testkit.message.AxisMessage;
import org.apache.synapse.transport.testkit.message.IncomingMessage;
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
@@ -41,10 +42,12 @@
IncomingMessage<AxisMessage> process() throws Throwable;
}
+ private MessageContextValidator[] validators;
private BlockingQueue<Event> queue;
@SuppressWarnings("unused")
- private void setUp() {
+ private void setUp(MessageContextValidator[] validators) {
+ this.validators = validators;
queue = new LinkedBlockingQueue<Event>();
}
@@ -59,6 +62,9 @@
final AxisMessage messageData;
try {
Assert.assertTrue(messageCtx.isServerSide());
+ for (MessageContextValidator validator : validators) {
+ validator.validate(messageCtx, false);
+ }
messageData = new AxisMessage(messageCtx);
}
catch (final Throwable ex) {