В Spring Integration у меня есть настройка DSL, которая выглядит примерно так:
---> --->
---> --->
Messages --> Gateway ---> QueueChannel ---> MessageHandler(worker) -> QueueChannel ---> MH worker2 --> ...
---> --->
---> --->
Я хочу написать для этого интеграционный тест, который проверит, было ли сообщение в правильных каналах. Я сейчас нигде не обогащаю заголовки, поэтому я хотел использовать:
this.someChannel.receive(TIMEOUT)
к сожалению, насколько я понимаю, он блокирует только основной поток теста, а не все, поэтому он не может получать отправленные сообщения асинхронно. Я знаю, что существует что-то вроде:
this.someChannel.getReceiveCount()
, это дает мне хорошие результаты, но проверки этого мне недостаточно. Как с этим справиться, чтобы получать сообщения, отправленные в очереди асинхронно c способом?
РЕДАКТИРОВАТЬ: Важно, что мне это нужно, потому что сообщение изменяется во время прохождения рабочего процесса