У меня примерно следующая последовательность обработки сообщений:
//first route:
from("direct:startRoute")
.process(someProcessor)
.bean(SomeBean.class)
//...
.to("activemq:queue:queueName")
;
//second route:
from("activemq:queue:queueName")
.process(anotherProcessor)
//...
;
Теперь я хочу сделать интеграционный тест этого алгоритма.Но после отправки сообщения в очередь первый маршрут останавливается и тестирование заканчивается.Я пытался проверить следующие способы:
template.sendBody(startEndpoint, "");
Добавить ко второму маршруту:
weaveAddLast().to(mockLastEndpoint)
Жду ответа:
mockLastEndpoint.assertExchangeReceived(0);
Или создайте
@Autowired
protected ConsumerTemplate consumerTemplate;
и ждите ответа так:
consumerTemplate.receive(mockLastEndpoint);
Но эти объекты не ждут ответов.Мне нужно подождать, пока тестовый маршрут не получит сообщение.Как я могу это сделать?