diff --git a/basic/testing-examples/readme.txt b/basic/testing-examples/readme.txt index 2df7e719..d942d5b6 100644 --- a/basic/testing-examples/readme.txt +++ b/basic/testing-examples/readme.txt @@ -4,7 +4,7 @@ A series of test cases that show techniques to test Spring Integration applicati Examples ======== -...spelchain.SpelChainTests.java +...chain.SpelChainTests.java This test case shows how to test a fragment of a larger integration flow. In this example, we have a simple chain containing a header enricher and @@ -53,6 +53,9 @@ application can be tested with local versions. This test case shows both unit testing a custom router class as well as testing it within a Spring Integration flow fragment. +A second filter is defined, that uses a discard channel for filtered +messages. + ...filter.PetFilterTests.java diff --git a/basic/testing-examples/src/main/resources/META-INF/spring/integration/06-filter/integration-context.xml b/basic/testing-examples/src/main/resources/META-INF/spring/integration/06-filter/integration-context.xml index e35be1af..210f1c87 100644 --- a/basic/testing-examples/src/main/resources/META-INF/spring/integration/06-filter/integration-context.xml +++ b/basic/testing-examples/src/main/resources/META-INF/spring/integration/06-filter/integration-context.xml @@ -16,4 +16,15 @@ + + + + + + + + + diff --git a/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests-context.xml b/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests-context.xml index 6fb16299..eac5ba7a 100644 --- a/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests-context.xml +++ b/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests-context.xml @@ -16,4 +16,18 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests.java b/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests.java index 9d88f17d..77329c2f 100644 --- a/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests.java +++ b/basic/testing-examples/src/test/java/org/springframework/integration/samples/testing/filter/PetFilterTests.java @@ -41,6 +41,9 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; * in this test case, we bridge it to a {@link QueueChannel} to * facilitate easy testing. * + * Similarly, we bridge the discard channel which is configured on the second + * filter instance. + * * @author Gary Russell * @since 2.0.2 */ @@ -51,9 +54,18 @@ public class PetFilterTests { @Autowired MessageChannel inputChannel; + @Autowired + MessageChannel inputChannel2; + @Autowired QueueChannel testChannel; + @Autowired + QueueChannel testChannel2; + + @Autowired + QueueChannel testDiscardChannel2; + @Test public void unitTestClassCat() { String payload = "CAT:Fluffy"; @@ -100,4 +112,39 @@ public class PetFilterTests { assertNull("Expected no output message", outMessage); } + @Test + public void testCatDiscard() { + String payload = "CAT:Fluffy"; + Message message = MessageBuilder.withPayload(payload).build(); + inputChannel2.send(message); + Message outMessage = testChannel2.receive(0); + assertNull("Expected no output message", outMessage); + outMessage = testDiscardChannel2.receive(0); + assertNotNull("Expected discard message", outMessage); + assertEquals(payload, message.getPayload()); + } + + @Test + public void testDogDiscard() { + String payload = "DOG:Fido"; + Message message = MessageBuilder.withPayload(payload).build(); + inputChannel2.send(message); + Message outMessage = testChannel.receive(0); + assertNotNull("Expected an output message", outMessage); + assertEquals(payload, outMessage.getPayload()); + outMessage = testDiscardChannel2.receive(0); + assertNull("Expected no discard message", outMessage); + } + + @Test + public void testLizardDiscard() { + String payload = "LIZARD:Scaly"; + Message message = MessageBuilder.withPayload(payload).build(); + inputChannel2.send(message); + Message outMessage = testChannel.receive(0); + assertNull("Expected no output message", outMessage); + outMessage = testDiscardChannel2.receive(0); + assertNotNull("Expected discard message", outMessage); + assertEquals(payload, message.getPayload()); + } }