Как заменить усиленную входную конечную точку на макет и отправить ей сообщение?
Скажем, у меня следующий маршрут.
from("spring-ws:rootqname:{http://myNameSpace}SomeRequest?endpointMapping=#endpointMapping").
processor(new VeryComplicatedProcessor()).
to(etc).
to(etc)...
Другими словами, весенний веб-сервис, который выполняет обработку всей лототы.
Один из способов проверить этот маршрут - запустить веб-сервис на веб-сервере и отправить ему сообщение, но это намного больше затрат, чем я хотел бы.
Вместо этого я ожидал бы, что если я высмею все мои конечные точки , я смогу сделать это:
public class RouteTest extends CamelSpringTestSupport {
@Override
public String isMockEndpoints() {
return "*"; // mock everything
}
@Test
public void simpleDirectTest() throws Exception {
String realURI = "spring-ws:rootqname:{http://myNameSpace}SomeRequest?endpointMapping=#endpointMapping";
String mockedURI = "mock:" + realURI;
String msg = buildSomeSoapMsg();
Object out = template.requestBody(mockedURI, msg);
log.debug(out.toString());
}
...
}
... и запустить весь маршрут и вернуть мне ответ. Однако вместо этого я просто отправляю сообщение обратно мне, и маршрут не был пройден.
Неужели мое понимание ложных слов неверно? Если да, есть ли альтернативный способ добиться этого? Я действительно хотел бы избежать необходимости запускать веб-сервис для тестирования этих маршрутов.
Спасибо всем.
РЕДАКТИРОВАТЬ - Выглядело так, будто я мог использовать AdviceWith для решения этой проблемы, но AdviceWith, похоже, работает только с выходами, а не с входами, как в случае выше.