INT-992: adding HeaderMatchers without MessageHistory matching
This commit is contained in:
@@ -22,8 +22,11 @@ import org.junit.Assert;
|
||||
import org.springframework.integration.core.Message;
|
||||
import org.springframework.integration.core.MessageHeaders;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
|
||||
/**
|
||||
* <h2>Are the {@link MessageHeaders} of a {@link Message} containing any entry
|
||||
* or multiple that match?</h2>
|
||||
@@ -89,7 +92,6 @@ public class HeaderMatcher extends TypeSafeMatcher<Message<?>> {
|
||||
*/
|
||||
public void describeTo(Description description) {
|
||||
description.appendText("a Message with Headers containing ").appendDescriptionOf(matcher);
|
||||
|
||||
}
|
||||
|
||||
@Factory
|
||||
@@ -111,4 +113,55 @@ public class HeaderMatcher extends TypeSafeMatcher<Message<?>> {
|
||||
public static Matcher<Message<?>> hasAllHeaders(Map<String, ?> entries) {
|
||||
return new HeaderMatcher(MapContentMatchers.hasAllEntries(entries));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static <T> Matcher<Message<?>> hasMessageId(T value) {
|
||||
return new HeaderMatcher(MapContentMatchers.hasEntry(MessageHeaders.ID, value));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static <T> Matcher<Message<?>> hasCorrelationId(T value) {
|
||||
return new HeaderMatcher(MapContentMatchers.hasEntry(MessageHeaders.CORRELATION_ID, value));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasSequenceNumber(Integer value) {
|
||||
return hasSequenceNumber(is(value));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasSequenceNumber(Matcher<Integer> matcher) {
|
||||
return new HeaderMatcher(MapContentMatchers.hasEntry(MessageHeaders.SEQUENCE_NUMBER, matcher));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasSequenceSize(Integer value) {
|
||||
return hasSequenceSize(is(value));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasSequenceSize(Matcher<Integer> value) {
|
||||
return new HeaderMatcher(MapContentMatchers.hasEntry(MessageHeaders.SEQUENCE_SIZE, value));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasExpirationDate(Date value) {
|
||||
return hasExpirationDate(is(value.getTime()));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasExpirationDate(Matcher<Long> matcher) {
|
||||
return new HeaderMatcher(MapContentMatchers.hasEntry(MessageHeaders.EXPIRATION_DATE, matcher));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasTimestamp(Date value) {
|
||||
return hasTimestamp(is(value.getTime()));
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Message<?>> hasTimestamp(Matcher<Long> matcher) {
|
||||
return new HeaderMatcher(MapContentMatchers.hasEntry(MessageHeaders.TIMESTAMP, matcher));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -16,22 +16,21 @@
|
||||
|
||||
package org.springframework.integration.test.matcher;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.CoreMatchers.not;
|
||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
import static org.hamcrest.CoreMatchers.nullValue;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.springframework.integration.test.matcher.HeaderMatcher.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.hamcrest.Matcher;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.integration.core.Message;
|
||||
import org.springframework.integration.message.MessageBuilder;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.springframework.integration.test.matcher.HeaderMatcher.*;
|
||||
|
||||
/**
|
||||
* @author Alex Peters
|
||||
* @author Iwein Fuld
|
||||
@@ -55,8 +54,8 @@ public class HeaderMatcherTests {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
message = MessageBuilder.withPayload(ANY_PAYLOAD).setHeader(ANY_HEADER_KEY,
|
||||
ANY_HEADER_VALUE).setHeader(OTHER_HEADER_KEY, OTHER_HEADER_VALUE).build();
|
||||
message = MessageBuilder.withPayload(ANY_PAYLOAD).setHeader(ANY_HEADER_KEY, ANY_HEADER_VALUE).setHeader(
|
||||
OTHER_HEADER_KEY, OTHER_HEADER_VALUE).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -116,17 +115,17 @@ public class HeaderMatcherTests {
|
||||
expectedInHeaderMap.remove(UNKNOWN_KEY);
|
||||
expectedInHeaderMap.put(OTHER_HEADER_KEY, ANY_HEADER_VALUE); // fails
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void readableException_singleHeader() throws Exception {
|
||||
try {
|
||||
assertThat(message, hasHeader("corn", "bread"));
|
||||
assertThat(message, hasHeader("corn", "bread"));
|
||||
}
|
||||
catch (AssertionError ae){
|
||||
catch (AssertionError ae) {
|
||||
assertTrue(ae.getMessage().contains("Expected: a Message with Headers containing "));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void readableException_allHeaders() throws Exception {
|
||||
try {
|
||||
@@ -135,8 +134,50 @@ public class HeaderMatcherTests {
|
||||
entries.put("chocolate", "pudding");
|
||||
assertThat(message, hasAllHeaders(entries));
|
||||
}
|
||||
catch (AssertionError ae){
|
||||
catch (AssertionError ae) {
|
||||
assertTrue(ae.getMessage().contains("Expected: a Message with Headers containing "));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasMessageId_sameId() throws Exception {
|
||||
assertThat(message, hasMessageId(message.getHeaders().getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasCorrelationId_() throws Exception {
|
||||
Object correlationId = message.getHeaders().getId();
|
||||
message = MessageBuilder.withPayload("blabla").setCorrelationId(correlationId).build();
|
||||
assertThat(message, hasCorrelationId(correlationId));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasSequenceNumber_() throws Exception {
|
||||
int sequenceNumber = 123;
|
||||
message = MessageBuilder.fromMessage(message).setSequenceNumber(sequenceNumber).build();
|
||||
assertThat(message, hasSequenceNumber(sequenceNumber));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasSequenceSize_() throws Exception {
|
||||
int sequenceSize = 123;
|
||||
message = MessageBuilder.fromMessage(message).setSequenceSize(sequenceSize).build();
|
||||
assertThat(message, hasSequenceSize(sequenceSize));
|
||||
assertThat(message, hasSequenceSize(is(sequenceSize)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasTimestamp_() throws Exception {
|
||||
assertThat(message, hasTimestamp(new Date(message.getHeaders().getTimestamp())));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasExpirationDate_() throws Exception {
|
||||
Matcher<Long> anyMatcher = anything();
|
||||
assertThat(message, not(hasExpirationDate(anyMatcher)));
|
||||
Date expirationDate = new Date(System.currentTimeMillis() + 10000);
|
||||
message = MessageBuilder.fromMessage(message).setExpirationDate(expirationDate).build();
|
||||
assertThat(message, hasExpirationDate(expirationDate));
|
||||
assertThat(message, hasExpirationDate(not(is((System.currentTimeMillis())))));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user