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());
+ }
}