From 625db5a0d0dc0eeac1b455b6b641618ccb6d0e15 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Fri, 30 Oct 2009 22:17:28 +0000 Subject: [PATCH] Added test for nested properties in an EL expression within a @Header annotation on a method parameter. --- ...entArrayMessageMapperFromMessageTests.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/handler/ArgumentArrayMessageMapperFromMessageTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/handler/ArgumentArrayMessageMapperFromMessageTests.java index 81d23670c1..a89869fb89 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/handler/ArgumentArrayMessageMapperFromMessageTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/handler/ArgumentArrayMessageMapperFromMessageTests.java @@ -288,6 +288,16 @@ public class ArgumentArrayMessageMapperFromMessageTests { mapper.fromMessage(message); } + @Test + public void headersWithExpressions() 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 { @@ -299,7 +309,7 @@ public class ArgumentArrayMessageMapperFromMessageTests { @SuppressWarnings("unused") private static class TestService { - public void payloadOnly(Map employee){} + public void payloadOnly(Map employee){} public void payloadOnlyPayloadArg(String fname){} public void payloadOnlyPayloadArgs(String fname, String lname){} public void payloadOnlyPayloadArgsHeaderArg(String fname, String day){} @@ -324,6 +334,10 @@ public class ArgumentArrayMessageMapperFromMessageTests { return num; } + public String headersWithExpressions(@Header("emp.fname") String firstName, @Header("emp.lname") String lastName) { + return lastName + ", " + firstName; + } + public String optionalAndRequiredHeader(@Header(required=false) String prop, @Header(value="num", required=true) Integer num) { return prop + num; } @@ -369,10 +383,10 @@ public class ArgumentArrayMessageMapperFromMessageTests { public void fromMessageToMessageMappingAnnotationMultiArguments(@MessageMapping("headers.day") String argA, @MessageMapping("headers.month") String argB, - @MessageMapping("#this") Message message, + @MessageMapping("#this") Message message, @MessageMapping("payload") Employee payloadArg, @MessageMapping("payload.fname") String value, - @MessageMapping("headers") Map headers){} // + @MessageMapping("headers") Map headers){} // public void fromMessageIrrelevantAnnotation(@BogusAnnotation() String value){} // }