- org.springframework.integration.test
+ spring-integration-test
@@ -15,8 +15,14 @@
+
+ org.maven.ide.eclipse.maven2Builder
+
+
+
+ org.maven.ide.eclipse.maven2Nature
org.springframework.ide.eclipse.core.springnature
org.eclipse.jdt.core.javanature
diff --git a/org.springframework.integration.test/src/main/java/org/springframework/integration/test/matcher/PayloadAndHeaderMatcher.java b/org.springframework.integration.test/src/main/java/org/springframework/integration/test/matcher/PayloadAndHeaderMatcher.java
index 6fbc9cb6c7..4f84df2147 100644
--- a/org.springframework.integration.test/src/main/java/org/springframework/integration/test/matcher/PayloadAndHeaderMatcher.java
+++ b/org.springframework.integration.test/src/main/java/org/springframework/integration/test/matcher/PayloadAndHeaderMatcher.java
@@ -14,7 +14,7 @@ import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageHeaders;
/**
- * Matcher to make assertions about message equality easier. Usage:
+ * Matcher to make assertions about message equality easier. Usage:
*
*
* @Test
@@ -29,21 +29,25 @@ import org.springframework.integration.core.MessageHeaders;
* return new PayloadAndHeaderMatcher(expected);
* }
*
- *
+ *
* @author Dave Syer
- *
+ *
*/
public class PayloadAndHeaderMatcher extends BaseMatcher> {
private final Object payload;
+
private final Map headers;
+ private final String[] ignoreKeys;
+
@Factory
- public static Matcher> sameExceptImmutableHeaders(Message> expected) {
- return new PayloadAndHeaderMatcher(expected);
+ public static Matcher> sameExceptIgnorableHeaders(Message> expected, String... ignoreKeys) {
+ return new PayloadAndHeaderMatcher(expected, ignoreKeys);
}
- private PayloadAndHeaderMatcher(Message> expected) {
+ private PayloadAndHeaderMatcher(Message> expected, String... ignoreKeys) {
+ this.ignoreKeys = ignoreKeys;
this.payload = expected.getPayload();
this.headers = getHeaders(expected);
}
@@ -52,6 +56,9 @@ public class PayloadAndHeaderMatcher extends BaseMatcher> {
HashMap headers = new HashMap(operand.getHeaders());
headers.remove(MessageHeaders.ID);
headers.remove(MessageHeaders.TIMESTAMP);
+ for (String key : ignoreKeys) {
+ headers.remove(key);
+ }
return headers;
}
@@ -62,7 +69,8 @@ public class PayloadAndHeaderMatcher extends BaseMatcher> {
}
public void describeTo(Description description) {
- description.appendText("a Message with Headers that match except ID and timestamp for payload: ").appendValue(payload).appendText(" and headers: ").appendValue(headers);
+ description.appendText("a Message with Headers that match except ID and timestamp for payload: ").appendValue(
+ payload).appendText(" and headers: ").appendValue(headers);
}
-
+
}
\ No newline at end of file