Fix STOMP broker relay int test issue
Avoid dependency on order in which expected messages are received.
This commit is contained in:
parent
56d26443e2
commit
58adc150c9
|
@ -282,12 +282,29 @@ public class StompBrokerRelayMessageHandlerIntegrationTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void expectMessages(MessageExchange... messageExchanges) throws InterruptedException {
|
public void expectMessages(MessageExchange... messageExchanges) throws InterruptedException {
|
||||||
for (MessageExchange exchange : messageExchanges) {
|
|
||||||
|
List<MessageExchange> expectedMessages =
|
||||||
|
new ArrayList<MessageExchange>(Arrays.<MessageExchange>asList(messageExchanges));
|
||||||
|
|
||||||
|
while (expectedMessages.size() > 0) {
|
||||||
Message<?> message = this.queue.poll(10000, TimeUnit.MILLISECONDS);
|
Message<?> message = this.queue.poll(10000, TimeUnit.MILLISECONDS);
|
||||||
assertNotNull("Timed out waiting for: " + exchange, message);
|
assertNotNull("Timed out waiting for messages, expected [" + expectedMessages + "]", message);
|
||||||
assertTrue("Expected: " + exchange + " but got: " + message, exchange.matchMessage(message));
|
|
||||||
|
MessageExchange match = findMatch(expectedMessages, message);
|
||||||
|
assertNotNull("Unexpected message=" + message + ", expected [" + expectedMessages + "]", match);
|
||||||
|
|
||||||
|
expectedMessages.remove(match);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private MessageExchange findMatch(List<MessageExchange> expectedMessages, Message<?> message) {
|
||||||
|
for (MessageExchange exchange : expectedMessages) {
|
||||||
|
if (exchange.matchMessage(message)) {
|
||||||
|
return exchange;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue