From 83700f73f49fedea8d2ae29bf61af902926c7da5 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Mon, 19 Dec 2011 09:51:45 +0200 Subject: [PATCH] INT-2315 headerValueRouter chain mapping minOcc=0 now doesn't require mapping when it is defined inside . Tests for inside . --- .../config/xml/spring-integration-2.1.xsd | 4 +- .../config/ChainParserTests-context.xml | 11 ++++++ .../integration/config/ChainParserTests.java | 37 ++++++++++++++++++- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/spring-integration-core/src/main/resources/org/springframework/integration/config/xml/spring-integration-2.1.xsd b/spring-integration-core/src/main/resources/org/springframework/integration/config/xml/spring-integration-2.1.xsd index 1610a4e171..54ef845714 100644 --- a/spring-integration-core/src/main/resources/org/springframework/integration/config/xml/spring-integration-2.1.xsd +++ b/spring-integration-core/src/main/resources/org/springframework/integration/config/xml/spring-integration-2.1.xsd @@ -2514,7 +2514,7 @@ endpoint itself is a Polling Consumer for a channel with a queue. - + - \ No newline at end of file + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml index 659cf948d2..5ab6d03d37 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests-context.xml @@ -71,6 +71,17 @@ + + + + + + + + + + + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests.java index b69649aa43..1c684d9b79 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/ChainParserTests.java @@ -47,6 +47,7 @@ import org.springframework.util.StringUtils; * @author Mark Fisher * @author Iwein Fuld * @author Dave Turanski + * @author Artem Bilan */ @ContextConfiguration @RunWith(SpringJUnit4ClassRunner.class) @@ -86,7 +87,13 @@ public class ChainParserTests { @Autowired private MessageChannel payloadTypeRouterInput; - + + @Autowired + private MessageChannel headerValueRouterInput; + + @Autowired + private MessageChannel headerValueRouterWithMappingInput; + @Autowired @Qualifier("claimCheckInput") private MessageChannel claimCheckInput; @@ -190,6 +197,34 @@ public class ChainParserTests { assertEquals(123, reply2.getPayload()); } + @Test // INT-2315 + public void chainWithHeaderValueRouter() throws Exception { + Message message1 = MessageBuilder.withPayload("test").setHeader("routingHeader", "strings").build(); + Message message2 = MessageBuilder.withPayload(123).setHeader("routingHeader", "numbers").build(); + this.headerValueRouterInput.send(message1); + this.headerValueRouterInput.send(message2); + Message reply1 = this.strings.receive(0); + Message reply2 = this.numbers.receive(0); + assertNotNull(reply1); + assertNotNull(reply2); + assertEquals("test", reply1.getPayload()); + assertEquals(123, reply2.getPayload()); + } + + @Test // INT-2315 + public void chainWithHeaderValueRouterWithMapping() throws Exception { + Message message1 = MessageBuilder.withPayload("test").setHeader("routingHeader", "isString").build(); + Message message2 = MessageBuilder.withPayload(123).setHeader("routingHeader", "isNumber").build(); + this.headerValueRouterWithMappingInput.send(message1); + this.headerValueRouterWithMappingInput.send(message2); + Message reply1 = this.strings.receive(0); + Message reply2 = this.numbers.receive(0); + assertNotNull(reply1); + assertNotNull(reply2); + assertEquals("test", reply1.getPayload()); + assertEquals(123, reply2.getPayload()); + } + @Test // INT-1165 public void chainWithSendTimeout() { Object endpoint = this.context.getBean("chainWithSendTimeout");