INT-681, INT-710 more refactoring of code for mapping between Messages and argument arrays

This commit is contained in:
Mark Fisher
2009-09-29 17:29:52 +00:00
parent 047b31d759
commit 0e8aa07748
7 changed files with 337 additions and 373 deletions

View File

@@ -28,6 +28,7 @@ import org.junit.Test;
import org.springframework.integration.annotation.Header;
import org.springframework.integration.annotation.Headers;
import org.springframework.integration.core.Message;
import org.springframework.integration.handler.MethodArgumentMessageMapper;
/**
* @author Mark Fisher
@@ -38,7 +39,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test
public void fromMessageWithOptionalHeader() throws Exception {
Method method = TestService.class.getMethod("optionalHeader", Integer.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Object[] args = mapper.fromMessage(new StringMessage("foo"));
assertEquals(1, args.length);
assertNull(args[0]);
@@ -47,14 +48,14 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test(expected = MessageHandlingException.class)
public void fromMessageWithRequiredHeaderNotProvided() throws Exception {
Method method = TestService.class.getMethod("requiredHeader", Integer.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
mapper.fromMessage(new StringMessage("foo"));
}
@Test
public void fromMessageWithRequiredHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("requiredHeader", Integer.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123)).build();
Object[] args = mapper.fromMessage(message);
@@ -65,7 +66,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test(expected = MessageHandlingException.class)
public void fromMessageWithOptionalAndRequiredHeaderAndOnlyOptionalHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("prop", "bar").build();
mapper.fromMessage(message);
@@ -74,7 +75,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test
public void fromMessageWithOptionalAndRequiredHeaderAndOnlyRequiredHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123)).build();
Object[] args = mapper.fromMessage(message);
@@ -86,7 +87,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test
public void fromMessageWithOptionalAndRequiredHeaderAndBothHeadersProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123))
.setHeader("prop", "bar")
@@ -100,7 +101,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test
public void fromMessageWithPropertiesMethodAndHeadersAnnotation() throws Exception {
Method method = TestService.class.getMethod("propertiesHeaders", Properties.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("prop1", "foo").setHeader("prop2", "bar").build();
Object[] args = mapper.fromMessage(message);
@@ -113,7 +114,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test
public void fromMessageWithPropertiesAndObjectMethod() throws Exception {
Method method = TestService.class.getMethod("propertiesHeadersAndPayload", Properties.class, Object.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("prop1", "foo").setHeader("prop2", "bar").build();
Object[] args = mapper.fromMessage(message);
@@ -128,7 +129,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test
public void fromMessageWithMapAndObjectMethod() throws Exception {
Method method = TestService.class.getMethod("mapHeadersAndPayload", Map.class, Object.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("prop1", "foo").setHeader("prop2", "bar").build();
Object[] args = mapper.fromMessage(message);
@@ -143,7 +144,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@Test
public void fromMessageWithPropertiesMethodAndPropertiesPayload() throws Exception {
Method method = TestService.class.getMethod("propertiesPayload", Properties.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Properties payload = new Properties();
payload.setProperty("prop1", "foo");
payload.setProperty("prop2", "bar");
@@ -160,7 +161,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@SuppressWarnings("unchecked")
public void fromMessageWithMapMethodAndHeadersAnnotation() throws Exception {
Method method = TestService.class.getMethod("mapHeaders", Map.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("attrib1", new Integer(123))
.setHeader("attrib2", new Integer(456)).build();
@@ -174,7 +175,7 @@ public class MethodParameterMessageMapperFromMessageTests {
@SuppressWarnings("unchecked")
public void fromMessageWithMapMethodAndMapPayload() throws Exception {
Method method = TestService.class.getMethod("mapPayload", Map.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Map<String, Integer> payload = new HashMap<String, Integer>();
payload.put("attrib1", new Integer(88));
payload.put("attrib2", new Integer(99));
@@ -189,6 +190,7 @@ public class MethodParameterMessageMapperFromMessageTests {
}
@SuppressWarnings("unused")
private static class TestService {
public String messageOnly(Message<?> message) {

View File

@@ -19,8 +19,8 @@ package org.springframework.integration.message;
import java.lang.reflect.Method;
import org.junit.Test;
import org.springframework.integration.core.Message;
import org.springframework.integration.handler.MethodArgumentMessageMapper;
/**
* @author Mark Fisher
@@ -30,19 +30,19 @@ public class MethodParameterMessageMapperInitializationTests {
@Test(expected = IllegalArgumentException.class)
public void messageAndPayload() throws Exception {
Method method = TestService.class.getMethod("messageAndPayload", Message.class, String.class);
new MethodParameterMessageMapper(method);
new MethodArgumentMessageMapper(method);
}
@Test(expected = IllegalArgumentException.class)
public void twoMessages() throws Exception {
Method method = TestService.class.getMethod("twoMessages", Message.class, Message.class);
new MethodParameterMessageMapper(method);
new MethodArgumentMessageMapper(method);
}
@Test(expected = IllegalArgumentException.class)
public void twoPayloads() throws Exception {
Method method = TestService.class.getMethod("twoPayloads", String.class, String.class);
new MethodParameterMessageMapper(method);
new MethodArgumentMessageMapper(method);
}

View File

@@ -28,6 +28,7 @@ import org.junit.Test;
import org.springframework.integration.annotation.Header;
import org.springframework.integration.annotation.Headers;
import org.springframework.integration.core.Message;
import org.springframework.integration.handler.MethodArgumentMessageMapper;
/**
* @author Mark Fisher
@@ -37,7 +38,7 @@ public class MethodParameterMessageMapperToMessageTests {
@Test
public void toMessageWithPayload() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test" });
assertEquals("test", message.getPayload());
}
@@ -45,14 +46,14 @@ public class MethodParameterMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void toMessageWithTooManyParameters() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
mapper.toMessage(new Object[] { "test" , "oops" });
}
@Test(expected = IllegalArgumentException.class)
public void toMessageWithEmptyParameterArray() throws Exception {
Method method = TestService.class.getMethod("sendPayload", String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
mapper.toMessage(new Object[] {});
}
@@ -60,7 +61,7 @@ public class MethodParameterMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeader() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeader", String.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", "bar" });
assertEquals("test", message.getPayload());
assertEquals("bar", message.getHeaders().get("foo"));
@@ -70,7 +71,7 @@ public class MethodParameterMessageMapperToMessageTests {
public void toMessageWithPayloadAndRequiredHeaderButNullValue() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeader", String.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
mapper.toMessage(new Object[] { "test", null });
}
@@ -78,7 +79,7 @@ public class MethodParameterMessageMapperToMessageTests {
public void toMessageWithPayloadAndOptionalHeaderWithValueProvided() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndOptionalHeader", String.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", "bar" });
assertEquals("test", message.getPayload());
assertEquals("bar", message.getHeaders().get("foo"));
@@ -88,7 +89,7 @@ public class MethodParameterMessageMapperToMessageTests {
public void toMessageWithPayloadAndOptionalHeaderWithNullValue() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndOptionalHeader", String.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", null });
assertEquals("test", message.getPayload());
assertNull(message.getHeaders().get("foo"));
@@ -98,7 +99,7 @@ public class MethodParameterMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeadersMap() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("abc", 123);
headers.put("def", 456);
@@ -112,7 +113,7 @@ public class MethodParameterMessageMapperToMessageTests {
public void toMessageWithPayloadAndNullHeadersMap() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> message = mapper.toMessage(new Object[] { "test", null });
assertEquals("test", message.getPayload());
}
@@ -121,7 +122,7 @@ public class MethodParameterMessageMapperToMessageTests {
public void toMessageWithPayloadAndHeadersMapWithNonStringKey() throws Exception {
Method method = TestService.class.getMethod(
"sendPayloadAndHeadersMap", String.class, Map.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Map<Integer, String> headers = new HashMap<Integer, String>();
headers.put(123, "abc");
mapper.toMessage(new Object[] { "test", headers });
@@ -130,7 +131,7 @@ public class MethodParameterMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameter() throws Exception {
Method method = TestService.class.getMethod("sendMessage", Message.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage });
assertEquals("test message", message.getPayload());
@@ -139,7 +140,7 @@ public class MethodParameterMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndHeader() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndHeader", Message.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, "bar" });
assertEquals("test message", message.getPayload());
@@ -149,7 +150,7 @@ public class MethodParameterMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void toMessageWithMessageParameterAndRequiredHeaderButNullValue() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndHeader", Message.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
mapper.toMessage(new Object[] { inputMessage, null });
}
@@ -157,7 +158,7 @@ public class MethodParameterMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndOptionalHeaderWithValue() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndOptionalHeader", Message.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, "bar" });
assertEquals("test message", message.getPayload());
@@ -167,7 +168,7 @@ public class MethodParameterMessageMapperToMessageTests {
@Test
public void toMessageWithMessageParameterAndOptionalHeaderWithNull() throws Exception {
Method method = TestService.class.getMethod("sendMessageAndOptionalHeader", Message.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
Message<?> inputMessage = MessageBuilder.withPayload("test message").build();
Message<?> message = mapper.toMessage(new Object[] { inputMessage, null });
assertEquals("test message", message.getPayload());
@@ -177,14 +178,14 @@ public class MethodParameterMessageMapperToMessageTests {
@Test(expected = IllegalArgumentException.class)
public void noArgs() throws Exception {
Method method = TestService.class.getMethod("noArgs", new Class<?>[] {});
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
mapper.toMessage(new Object[] {});
}
@Test(expected = IllegalArgumentException.class)
public void onlyHeaders() throws Exception {
Method method = TestService.class.getMethod("onlyHeaders", String.class, String.class);
MethodParameterMessageMapper mapper = new MethodParameterMessageMapper(method);
MethodArgumentMessageMapper mapper = new MethodArgumentMessageMapper(method);
mapper.toMessage(new Object[] { "abc", "def" });
}