Тестирование верблюжьих маршрутов с помощью activeMQ - PullRequest
0 голосов
/ 04 февраля 2019

У меня примерно следующая последовательность обработки сообщений:

//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);

Но эти объекты не ждут ответов.Мне нужно подождать, пока тестовый маршрут не получит сообщение.Как я могу это сделать?

...