Поскольку вы уже создаете маршрут, вы можете добавить распространение к фиктивной конечной точке в своем совете по маршруту, например:
this.weaveAddLast().to("mock:done");
, который просто добавляет определение .to("mock:done")
в конец вашего "Build & Send Http Request"
маршрута. Из данного постановки задачи немного неясно, что на самом деле делает .bean(processResponse);
. Вы также можете добавить это ложное распространение в конечной точке к маршруту "Build XML Response"
, и в этом случае вам понадобится дополнительное определение маршрута.
Далее, вы можете позволить Camel вводить фиктивную конечную точку через
@EndpointInject(uri = "mock:done")
private MockEndpoint done;
или определите его вручную внутри теста с помощью:
MockEndpoint done = camelContext.getEndpoint("mock:done", MockEndpoint.class);
Эта фиктивная конечная точка может использоваться для определения определенных ожиданий , так что вы ожидаете, что одна конечная точка получит одно сообщение
done.expectedMessageCount(1);
...
// invoke your route here
template.sendBody(...);
...
done.assertIsSatisfied();
Вы также можете получить доступ к обменам, полученным этой конечной точкой, напрямую через следующее направление и выполнить дальнейшие утверждения для него:
Exchange exchange = done.getExchanges().get(0);
...
Если вы используете Camel поверх Spring (Boot), вы также можете прочитать, как тестировать Camel с включенным Spring