INT-937, INT-87 Message History (work in progress)

This commit is contained in:
Mark Fisher
2010-02-18 14:33:16 +00:00
parent 0d15ef88b1
commit 2d5c989ee7
24 changed files with 343 additions and 654 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2008 the original author or authors.
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,8 +35,7 @@ import org.springframework.integration.channel.PollableChannel;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.core.MessageHistory.ComponentType;
import org.springframework.integration.core.MessageHistory.Event;
import org.springframework.integration.core.MessageHistoryEvent;
import org.springframework.integration.endpoint.EventDrivenConsumer;
import org.springframework.integration.handler.BridgeHandler;
import org.springframework.integration.message.MessageHandler;
@@ -55,6 +54,7 @@ public class GatewayProxyFactoryBeanTests {
GatewayProxyFactoryBean proxyFactory = new GatewayProxyFactoryBean();
proxyFactory.setDefaultRequestChannel(requestChannel);
proxyFactory.setServiceInterface(TestService.class);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
TestService service = (TestService) proxyFactory.getObject();
String result = service.requestReply("foo");
@@ -67,6 +67,7 @@ public class GatewayProxyFactoryBeanTests {
GatewayProxyFactoryBean proxyFactory = new GatewayProxyFactoryBean();
proxyFactory.setServiceInterface(TestService.class);
proxyFactory.setDefaultRequestChannel(requestChannel);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
TestService service = (TestService) proxyFactory.getObject();
service.oneWay("test");
@@ -83,6 +84,7 @@ public class GatewayProxyFactoryBeanTests {
proxyFactory.setServiceInterface(TestService.class);
proxyFactory.setDefaultRequestChannel(new DirectChannel());
proxyFactory.setDefaultReplyChannel(replyChannel);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
TestService service = (TestService) proxyFactory.getObject();
String result = service.solicitResponse();
@@ -103,6 +105,7 @@ public class GatewayProxyFactoryBeanTests {
GatewayProxyFactoryBean proxyFactory = new GatewayProxyFactoryBean();
proxyFactory.setServiceInterface(TestService.class);
proxyFactory.setDefaultRequestChannel(requestChannel);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
TestService service = (TestService) proxyFactory.getObject();
Integer result = service.requestReplyWithIntegers(123);
@@ -171,6 +174,7 @@ public class GatewayProxyFactoryBeanTests {
GatewayProxyFactoryBean proxyFactory = new GatewayProxyFactoryBean();
proxyFactory.setServiceInterface(TestService.class);
proxyFactory.setDefaultRequestChannel(requestChannel);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
TestService service = (TestService) proxyFactory.getObject();
String result = service.requestReplyWithMessageParameter(new StringMessage("foo"));
@@ -190,6 +194,7 @@ public class GatewayProxyFactoryBeanTests {
GatewayProxyFactoryBean proxyFactory = new GatewayProxyFactoryBean();
proxyFactory.setServiceInterface(TestService.class);
proxyFactory.setDefaultRequestChannel(requestChannel);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
TestService service = (TestService) proxyFactory.getObject();
Message<?> result = service.requestReplyWithMessageReturnValue("foo");
@@ -217,6 +222,7 @@ public class GatewayProxyFactoryBeanTests {
GatewayProxyFactoryBean proxyFactory = new GatewayProxyFactoryBean();
proxyFactory.setDefaultRequestChannel(new DirectChannel());
proxyFactory.setServiceInterface(TestService.class);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
Object proxy = proxyFactory.getObject();
String expected = "gateway proxy for";
@@ -237,6 +243,7 @@ public class GatewayProxyFactoryBeanTests {
consumer.start();
proxyFactory.setDefaultRequestChannel(channel);
proxyFactory.setServiceInterface(TestExceptionThrowingInterface.class);
proxyFactory.setBeanName("testGateway");
proxyFactory.afterPropertiesSet();
TestExceptionThrowingInterface proxy = (TestExceptionThrowingInterface) proxyFactory.getObject();
proxy.throwCheckedException("test");
@@ -256,21 +263,23 @@ public class GatewayProxyFactoryBeanTests {
@Test
public void testMethodNameInHistory() throws Exception {
GatewayProxyFactoryBean proxyFactory = new GatewayProxyFactoryBean();
proxyFactory.setBeanName("testGateway");
DirectChannel channel = new DirectChannel();
channel.setBeanName("testChannel");
EventDrivenConsumer consumer = new EventDrivenConsumer(channel, new BridgeHandler());
consumer.setBeanName("testBridge");
consumer.start();
proxyFactory.setDefaultRequestChannel(channel);
proxyFactory.setServiceInterface(TestEchoService.class);
proxyFactory.afterPropertiesSet();
TestEchoService proxy = (TestEchoService) proxyFactory.getObject();
Message<?> message = proxy.echo("test");
Iterator<Event> historyIterator = message.getHeaders().getHistory().iterator();
Event event1 = historyIterator.next();
Event event2 = historyIterator.next();
assertEquals(ComponentType.gateway, event1.getComponentType());
assertEquals("echo", event1.getComponentName());
assertEquals(ComponentType.channel, event2.getComponentType());
Iterator<MessageHistoryEvent> historyIterator = message.getHeaders().getHistory().iterator();
MessageHistoryEvent event1 = historyIterator.next();
MessageHistoryEvent event2 = historyIterator.next();
assertEquals("testGateway", event1.getComponentName());
assertEquals("echo", event1.getProperty("method", String.class));
assertEquals("channel", event2.getComponentType());
assertEquals("testChannel", event2.getComponentName());
}

View File

@@ -49,6 +49,7 @@ public class GatewayProxyMessageMappingTests {
GatewayProxyFactoryBean factoryBean = new GatewayProxyFactoryBean();
factoryBean.setServiceInterface(TestGateway.class);
factoryBean.setDefaultRequestChannel(channel);
factoryBean.setBeanName("testGateway");
factoryBean.afterPropertiesSet();
this.gateway = (TestGateway) factoryBean.getObject();
}

View File

@@ -1,425 +0,0 @@
/*
* Copyright 2002-2009 the original author or authors.
*
* Licensed 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.springframework.integration.handler;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.integration.annotation.Header;
import org.springframework.integration.annotation.Headers;
import org.springframework.integration.annotation.Payload;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessagingException;
import org.springframework.integration.message.MessageBuilder;
import org.springframework.integration.message.MessageHandlingException;
import org.springframework.integration.message.StringMessage;
/**
* @author Mark Fisher
* @author Iwein Fuld
* @author Oleg Zhurakousky
*/
public class ArgumentArrayMessageMapperFromMessageTests {
private final Employee employee = new Employee("oleg", "zhurakousky");
@Test
public void fromMessageWithOptionalHeader() throws Exception {
Method method = TestService.class.getMethod("optionalHeader", Integer.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Object[] args = mapper.fromMessage(new StringMessage("foo"));
assertEquals(1, args.length);
assertNull(args[0]);
}
@Test(expected = MessageHandlingException.class)
public void fromMessageWithRequiredHeaderNotProvided() throws Exception {
Method method = TestService.class.getMethod("requiredHeader", Integer.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
mapper.fromMessage(new StringMessage("foo"));
}
@Test
public void fromMessageWithRequiredHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("requiredHeader", Integer.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123)).build();
Object[] args = mapper.fromMessage(message);
assertEquals(1, args.length);
assertEquals(new Integer(123), args[0]);
}
@Test(expected = MessageHandlingException.class)
public void fromMessageWithOptionalAndRequiredHeaderAndOnlyOptionalHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("prop", "bar").build();
mapper.fromMessage(message);
}
@Test
public void fromMessageWithOptionalAndRequiredHeaderAndOnlyRequiredHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123)).build();
Object[] args = mapper.fromMessage(message);
assertEquals(2, args.length);
assertNull(args[0]);
assertEquals(123, args[1]);
}
@Test
public void fromMessageWithOptionalAndRequiredHeaderAndBothHeadersProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123))
.setHeader("prop", "bar")
.build();
Object[] args = mapper.fromMessage(message);
assertEquals(2, args.length);
assertEquals("bar", args[0]);
assertEquals(123, args[1]);
}
@Test
public void fromMessageWithPropertiesMethodAndHeadersAnnotation() throws Exception {
Method method = TestService.class.getMethod("propertiesHeaders", Properties.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("prop1", "foo").setHeader("prop2", "bar").build();
Object[] args = mapper.fromMessage(message);
Properties result = (Properties) args[0];
assertEquals("foo", result.getProperty("prop1"));
assertEquals("bar", result.getProperty("prop2"));
}
@Test
public void fromMessageWithPropertiesAndObjectMethod() throws Exception {
Method method = TestService.class.getMethod("propertiesHeadersAndPayload", Properties.class, Object.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("prop1", "foo").setHeader("prop2", "bar").build();
Object[] args = mapper.fromMessage(message);
Properties result = (Properties) args[0];
assertEquals("foo", result.getProperty("prop1"));
assertEquals("bar", result.getProperty("prop2"));
assertEquals("test", args[1]);
}
@SuppressWarnings("unchecked")
@Test
public void fromMessageWithMapAndObjectMethod() throws Exception {
Method method = TestService.class.getMethod("mapHeadersAndPayload", Map.class, Object.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("prop1", "foo").setHeader("prop2", "bar").build();
Object[] args = mapper.fromMessage(message);
Map result = (Map) args[0];
//Map also contains id, timestamp, and history
assertEquals(5, result.size());
assertEquals("foo", result.get("prop1"));
assertEquals("bar", result.get("prop2"));
assertEquals("test", args[1]);
}
@Test
public void fromMessageWithPropertiesMethodAndPropertiesPayload() throws Exception {
Method method = TestService.class.getMethod("propertiesPayload", Properties.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Properties payload = new Properties();
payload.setProperty("prop1", "foo");
payload.setProperty("prop2", "bar");
Message<Properties> message = MessageBuilder.withPayload(payload)
.setHeader("prop1", "not").setHeader("prop2", "these").build();
Object[] args = mapper.fromMessage(message);
Properties result = (Properties) args[0];
//assertEquals(2, result.size());
assertEquals("foo", result.getProperty("prop1"));
assertEquals("bar", result.getProperty("prop2"));
}
@Test
@SuppressWarnings("unchecked")
public void fromMessageWithMapMethodAndHeadersAnnotation() throws Exception {
Method method = TestService.class.getMethod("mapHeaders", Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("attrib1", new Integer(123))
.setHeader("attrib2", new Integer(456)).build();
Object[] args = mapper.fromMessage(message);
Map<String, Object> result = (Map<String, Object>) args[0];
assertEquals(new Integer(123), result.get("attrib1"));
assertEquals(new Integer(456), result.get("attrib2"));
}
@Test
@SuppressWarnings("unchecked")
public void fromMessageWithMapMethodAndMapPayload() throws Exception {
Method method = TestService.class.getMethod("mapPayload", Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Map<String, Integer> payload = new HashMap<String, Integer>();
payload.put("attrib1", new Integer(88));
payload.put("attrib2", new Integer(99));
Message<Map<String, Integer>> message = MessageBuilder.withPayload(payload)
.setHeader("attrib1", new Integer(123))
.setHeader("attrib2", new Integer(456)).build();
Object[] args = mapper.fromMessage(message);
Map<String, Integer> result = (Map<String, Integer>) args[0];
assertEquals(2, result.size());
assertEquals(new Integer(88), result.get("attrib1"));
assertEquals(new Integer(99), result.get("attrib2"));
}
@Test
public void fromMessageToMessageMappingAnnotation() throws Exception {
Message<?> message = this.getMessage();
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(TestService.class.getMethod("fromMessageToMessageMappingAnnotation", String.class));
Object[] parameters = mapper.fromMessage(message);
Assert.assertNotNull(parameters);
Assert.assertTrue(parameters.length == 1);
Assert.assertTrue(parameters[0].equals("monday"));
}
@Test
public void fromMessageIrrelevantAnnotation() throws Exception {
Message<?> message = MessageBuilder.withPayload("foo").build();
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(TestService.class.getMethod("fromMessageIrrelevantAnnotation", String.class));
Object args[] = mapper.fromMessage(message);
assertEquals(1, args.length);
assertEquals("foo", args[0]);
}
@Test
public void fromMessageToMessageMappingAnnotationMultiArguments() throws Exception {
Message<?> message = this.getMessage();
ArgumentArrayMessageMapper mapper =
new ArgumentArrayMessageMapper(TestService.class.getMethod("fromMessageToMessageMappingAnnotationMultiArguments",
String.class,
String.class,
Message.class,
Employee.class,
String.class,
Map.class));
Object[] parameters = mapper.fromMessage(message);
Assert.assertNotNull(parameters);
Assert.assertTrue(parameters.length == 6);
Assert.assertTrue(parameters[0].equals("monday"));
Assert.assertTrue(parameters[1].equals("September"));
Assert.assertTrue(parameters[2].equals(message));
Assert.assertTrue(parameters[3].equals(employee));
Assert.assertTrue(parameters[4].equals("oleg"));
Assert.assertTrue(parameters[5] instanceof Map);
}
@Test
public void fromMessageToPayload() throws Exception {
Method method = TestService.class.getMethod("payloadOnly", Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<Employee> message = MessageBuilder.withPayload(employee).setHeader("number", "jkl").build();
Object[] args = mapper.fromMessage(message);
Assert.assertTrue(args[0] instanceof Map);
Assert.assertTrue(((Map)args[0]).get("number").equals("jkl"));
}
@Test
public void fromMessageToPayloadArg() throws Exception {
Method method = TestService.class.getMethod("payloadOnlyPayloadArg", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<Employee> message = MessageBuilder.withPayload(employee).setHeader("number", "jkl").build();
Object[] args = mapper.fromMessage(message);
Assert.assertTrue(args[0] instanceof String);
Assert.assertTrue(args[0].equals("oleg"));
}
@Test
public void fromMessageToPayloadArgs() throws Exception {
Method method = TestService.class.getMethod("payloadOnlyPayloadArgs", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<Employee> message = MessageBuilder.withPayload(employee).setHeader("number", "jkl").build();
Object[] args = mapper.fromMessage(message);
Assert.assertTrue(args[0] instanceof String);
Assert.assertTrue(args[0].equals("oleg"));
Assert.assertTrue(args[1] instanceof String);
Assert.assertTrue(args[1].equals("zhurakousky"));
}
@Test
public void fromMessageToPayloadArgsHeaderArgs() throws Exception {
Method method = TestService.class.getMethod("payloadOnlyPayloadArgsHeaderArg", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<Employee> message = MessageBuilder.withPayload(employee).setHeader("day", "monday").build();
Object[] args = mapper.fromMessage(message);
Assert.assertTrue(args[0] instanceof String);
Assert.assertTrue(args[0].equals("oleg"));
Assert.assertTrue(args[1] instanceof String);
Assert.assertTrue(args[1].equals("monday"));
}
@Test(expected = MessagingException.class)
public void fromMessageInvalidMethodWithMultipleMappingAnnotations() throws Exception {
Method method = MultipleMappingAnnotationTestBean.class.getMethod("test", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Message<?> message = MessageBuilder.withPayload("payload").setHeader("foo", "bar").build();
mapper.fromMessage(message);
}
@Test
public void fromMessageToHeadersWithExpressions() throws Exception {
Method method = TestService.class.getMethod("headersWithExpressions", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
Employee employee = new Employee("John", "Doe");
Message<?> message = MessageBuilder.withPayload("payload").setHeader("emp", employee).build();
Object[] args = mapper.fromMessage(message);
assertEquals("John", args[0]);
assertEquals("DOE", args[1]);
}
@SuppressWarnings("unused")
private static class MultipleMappingAnnotationTestBean {
public void test(@Payload("payload") @Header("foo") String s) {
}
}
@SuppressWarnings("unused")
private static class TestService {
public void payloadOnly(Map<?,?> employee){}
public void payloadOnlyPayloadArg(String fname){}
public void payloadOnlyPayloadArgs(String fname, String lname){}
public void payloadOnlyPayloadArgsHeaderArg(String fname, String day){}
public String messageOnly(Message<?> message) {
return (String) message.getPayload();
}
public String messageAndHeader(Message<?> message, @Header("number") Integer num) {
return (String) message.getPayload() + "-" + num.toString();
}
public String twoHeaders(@Header String prop, @Header("number") Integer num) {
return prop + "-" + num.toString();
}
public Integer optionalHeader(@Header(required=false) Integer num) {
return num;
}
public Integer requiredHeader(@Header(value="num", required=true) Integer num) {
return num;
}
public String headersWithExpressions(@Header("emp.fname") String firstName,
@Header("emp.lname.toUpperCase()") String lastName) {
return lastName + ", " + firstName;
}
public String optionalAndRequiredHeader(@Header(required=false) String prop, @Header(value="num", required=true) Integer num) {
return prop + num;
}
public Properties propertiesPayload(Properties properties) {
return properties;
}
public Properties propertiesHeaders(@Headers Properties properties) {
return properties;
}
public Object propertiesHeadersAndPayload(Properties headers, Object payload) {
return payload;
}
@SuppressWarnings("unchecked")
public Map mapPayload(Map map) {
return map;
}
@SuppressWarnings("unchecked")
public Map mapHeaders(@Headers Map map) {
return map;
}
@SuppressWarnings("unchecked")
public Object mapHeadersAndPayload(Map headers, Object payload) {
return payload;
}
public Integer integerMethod(Integer i) {
return i;
}
public void fromMessageToArgWithConversion(@Header("number") String sArg) {} //
public void fromMessageToArgWithConversion(@Header("number") Integer iArg) {} //
public void fromMessageToArgWithConversion(@Header("numberA")Integer valueA, @Header("numberB") Integer valueB) {} //
public void fromMessageToMessageMappingAnnotation(@Header("day") String value) {} //
public void fromMessageToMessageMappingAnnotationMultiArguments(@Header("day") String argA,
@Header("month") String argB,
Message<?> message,
@Payload Employee payloadArg,
@Payload("fname") String value,
@Headers Map<?,?> headers){} //
public void fromMessageIrrelevantAnnotation(@BogusAnnotation() String value){} //
}
private Message<?> getMessage() {
MessageBuilder<Employee> builder = MessageBuilder.withPayload(employee);
builder.setHeader("day", "monday");
builder.setHeader("month", "September");
Message<Employee> message = builder.build();
return message;
}
public static class Employee {
private String fname;
private String lname;
public Employee(String fname, String lname) {
this.fname = fname;
this.lname = lname;
}
public String getFname() {
return fname;
}
public String getLname() {
return lname;
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2009 the original author or authors.
* Copyright 2002-2010 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -39,7 +39,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithPayload() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> message = mapper.toMessage(new Object[] { "test" });
assertEquals("test", message.getPayload());
}
@@ -47,14 +47,14 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void toMessageWithTooManyParameters() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
mapper.toMessage(new Object[] { "test" , "oops" });
}
@Test(expected = IllegalArgumentException.class)
public void toMessageWithEmptyParameterArray() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
mapper.toMessage(new Object[] {});
}
@@ -62,7 +62,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeader() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> message = mapper.toMessage(new Object[] { "test", "bar" });
assertEquals("test", message.getPayload());
assertEquals("bar", message.getHeaders().get("foo"));
@@ -72,7 +72,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndRequiredHeaderButNullValue() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
mapper.toMessage(new Object[] { "test", null });
}
@@ -80,7 +80,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndOptionalHeaderWithValueProvided() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndOptionalHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> message = mapper.toMessage(new Object[] { "test", "bar" });
assertEquals("test", message.getPayload());
assertEquals("bar", message.getHeaders().get("foo"));
@@ -90,7 +90,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndOptionalHeaderWithNullValue() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndOptionalHeader", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> message = mapper.toMessage(new Object[] { "test", null });
assertEquals("test", message.getPayload());
assertNull(message.getHeaders().get("foo"));
@@ -100,7 +100,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeadersMap() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("abc", 123);
headers.put("def", 456);
@@ -114,7 +114,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndNullHeadersMap() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> message = mapper.toMessage(new Object[] { "test", null });
assertEquals("test", message.getPayload());
}
@@ -123,7 +123,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeadersMapWithNonStringKey() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Map<Integer, String> headers = new HashMap<Integer, String>();
headers.put(123, "abc");
mapper.toMessage(new Object[] { "test", headers });
@@ -132,7 +132,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameter() throws Exception {
Method method = TestService.class.getMethod("sendMessage", Message.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage });
assertEquals("test message", message.getPayload());
@@ -141,7 +141,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndHeader() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, "bar" });
assertEquals("test message", message.getPayload());
@@ -151,7 +151,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void toMessageWithMessageParameterAndRequiredHeaderButNullValue() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
mapper.toMessage(new Object[] { inputMessage, null });
}
@@ -159,7 +159,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndOptionalHeaderWithValue() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndOptionalHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, "bar" });
assertEquals("test message", message.getPayload());
@@ -169,7 +169,7 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndOptionalHeaderWithNull() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndOptionalHeader", Message.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, null });
assertEquals("test message", message.getPayload());
@@ -179,14 +179,14 @@ public class ArgumentArrayMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void noArgs() throws Exception {
Method method = TestService.class.getMethod("noArgs", new Class<?>[] {});
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
mapper.toMessage(new Object[] {});
}
@Test(expected = IllegalArgumentException.class)
public void onlyHeaders() throws Exception {
Method method = TestService.class.getMethod("onlyHeaders", String.class, String.class);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method);
ArgumentArrayMessageMapper mapper = new ArgumentArrayMessageMapper(method, "testGateway");
mapper.toMessage(new Object[] { "abc", "def" });
}