Refactored MethodArgumentMessageMapperTests to MessageMappingParameterResolverTests.

This commit is contained in:
Mark Fisher
2008-09-22 22:38:49 +00:00
parent f07c7fc2fd
commit b630f4a072

View File

@@ -30,82 +30,83 @@ import org.springframework.integration.annotation.Header;
import org.springframework.integration.message.Message;
import org.springframework.integration.message.MessageBuilder;
import org.springframework.integration.message.MessageHandlingException;
import org.springframework.integration.message.MessageMappingParameterResolver;
import org.springframework.integration.message.StringMessage;
/**
* @author Mark Fisher
*/
public class MethodArgumentMessageMapperTests {
public class MessageMappingParameterResolverTests {
@Test
public void testOptionalHeader() throws Exception {
public void optionalHeader() throws Exception {
Method method = TestService.class.getMethod("optionalHeader", Integer.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
Object[] args = (Object[]) mapper.mapMessage(new StringMessage("foo"));
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Object[] args = resolver.resolveParameters(new StringMessage("foo"));
assertEquals(1, args.length);
assertNull(args[0]);
}
@Test(expected=MessageHandlingException.class)
public void testRequiredHeaderNotProvided() throws Exception {
@Test(expected = MessageHandlingException.class)
public void tequiredHeaderNotProvided() throws Exception {
Method method = TestService.class.getMethod("requiredHeader", Integer.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
mapper.mapMessage(new StringMessage("foo"));
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
resolver.resolveParameters(new StringMessage("foo"));
}
@Test
public void testRequiredHeaderProvided() throws Exception {
public void requiredHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("requiredHeader", Integer.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123)).build();
Object[] args = (Object[]) mapper.mapMessage(message);
Object[] args = resolver.resolveParameters(message);
assertEquals(1, args.length);
assertEquals(new Integer(123), args[0]);
}
@Test(expected=MessageHandlingException.class)
public void testOptionalAndRequiredHeaderWithOnlyOptionalHeaderProvided() throws Exception {
@Test(expected = MessageHandlingException.class)
public void optionalAndRequiredHeaderWithOnlyOptionalHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("prop", "bar").build();
mapper.mapMessage(message);
.setHeader("prop", "bar").build();
resolver.resolveParameters(message);
}
@Test
public void testOptionalAndRequiredHeaderWithOnlyRequiredHeaderProvided() throws Exception {
public void optionalAndRequiredHeaderWithOnlyRequiredHeaderProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123)).build();
Object[] args = (Object[]) mapper.mapMessage(message);
Object[] args = resolver.resolveParameters(message);
assertEquals(2, args.length);
assertNull(args[0]);
assertEquals(123, args[1]);
}
@Test
public void testOptionalAndRequiredHeaderWithBothHeadersProvided() throws Exception {
public void optionalAndRequiredHeaderWithBothHeadersProvided() throws Exception {
Method method = TestService.class.getMethod("optionalAndRequiredHeader", String.class, Integer.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Message<String> message = MessageBuilder.withPayload("foo")
.setHeader("num", new Integer(123))
.setHeader("prop", "bar")
.build();
Object[] args = (Object[]) mapper.mapMessage(message);
Object[] args = resolver.resolveParameters(message);
assertEquals(2, args.length);
assertEquals("bar", args[0]);
assertEquals(123, args[1]);
}
@Test
public void testPropertiesMethodWithNonPropertiesPayload() throws Exception {
public void propertiesMethodWithNonPropertiesPayload() throws Exception {
Method method = TestService.class.getMethod("propertiesMethod", Properties.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("prop1", "foo").setHeader("prop2", "bar").build();
Object[] args = (Object[]) mapper.mapMessage(message);
Object[] args = resolver.resolveParameters(message);
Properties result = (Properties) args[0];
assertEquals(2, result.size());
assertEquals("foo", result.getProperty("prop1"));
@@ -113,15 +114,15 @@ public class MethodArgumentMessageMapperTests {
}
@Test
public void testPropertiesMethodWithPropertiesPayload() throws Exception {
public void propertiesMethodWithPropertiesPayload() throws Exception {
Method method = TestService.class.getMethod("propertiesMethod", Properties.class);
MethodArgumentMessageMapper<Properties> mapper = new MethodArgumentMessageMapper<Properties>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(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 = (Object[]) mapper.mapMessage(message);
Object[] args = resolver.resolveParameters(message);
Properties result = (Properties) args[0];
assertEquals(2, result.size());
assertEquals("foo", result.getProperty("prop1"));
@@ -132,11 +133,11 @@ public class MethodArgumentMessageMapperTests {
@SuppressWarnings("unchecked")
public void testMapMethodWithNonMapPayload() throws Exception {
Method method = TestService.class.getMethod("mapMethod", Map.class);
MethodArgumentMessageMapper<String> mapper = new MethodArgumentMessageMapper<String>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Message<String> message = MessageBuilder.withPayload("test")
.setHeader("attrib1", new Integer(123))
.setHeader("attrib2", new Integer(456)).build();
Object[] args = (Object[]) mapper.mapMessage(message);
Object[] args = resolver.resolveParameters(message);
Map<String, Object> result = (Map<String, Object>) args[0];
assertEquals(new Integer(123), result.get("attrib1"));
assertEquals(new Integer(456), result.get("attrib2"));
@@ -146,14 +147,14 @@ public class MethodArgumentMessageMapperTests {
@SuppressWarnings("unchecked")
public void testMapMethodWithMapPayload() throws Exception {
Method method = TestService.class.getMethod("mapMethod", Map.class);
MethodArgumentMessageMapper<Map<String,Integer>> mapper = new MethodArgumentMessageMapper<Map<String,Integer>>(method);
MessageMappingParameterResolver resolver = new MessageMappingParameterResolver(method);
Map<String, Integer> payload = new HashMap<String, Integer>();
payload.put("attrib1", new Integer(123));
payload.put("attrib2", new Integer(456));
Message<Map<String, Integer>> message = MessageBuilder.withPayload(payload)
.setHeader("attrib1", new Integer(123))
.setHeader("attrib2", new Integer(456)).build();
Object[] args = (Object[]) mapper.mapMessage(message);
Object[] args = resolver.resolveParameters(message);
Map<String, Integer> result = (Map<String, Integer>) args[0];
assertEquals(2, result.size());
assertEquals(new Integer(123), result.get("attrib1"));