[
https://issues.apache.org/jira/browse/CAMEL-3578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12985313#action_12985313
]
Claus Ibsen commented on CAMEL-3578:
------------------------------------
I got the following experimental working.
Notice we use an {{AdviceWithRouteBuilder}} which has extended features such as
the {{mockEndpoints()}} which tell Camel to mock all endpoints.
The mocks will have the naming scheme {{mock:uri}} here {{uri}} was the real
endpoint uri.
Notice the example only has one mock endpoint in the route from the start,
which is {{"mock:result"}}.
We could in fact remove it and the route would not have any mocks from the
start.
{code}
// START SNIPPET: e1
public void testAdvisedMockEndpoints() throws Exception {
// advice the first route using the inlined AdviceWith route builder
// which has extended capabilities than the regular route builder
context.getRouteDefinitions().get(0).adviceWith(context, new
AdviceWithRouteBuilder() {
@Override
public void configure() throws Exception {
// mock all endpoints
mockEndpoints();
}
});
getMockEndpoint("mock:direct://start").expectedBodiesReceived("Hello
World");
getMockEndpoint("mock:direct://foo").expectedBodiesReceived("Hello
World");
getMockEndpoint("mock:log://foo").expectedBodiesReceived("Bye World");
getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
}
// END SNIPPET: e1
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start").to("direct:foo").to("log:foo").to("mock:result");
from("direct:foo").transform(constant("Bye World"));
}
};
}
{code}
> MockEndpoint - Add feature to mock any endpoint
> -----------------------------------------------
>
> Key: CAMEL-3578
> URL: https://issues.apache.org/jira/browse/CAMEL-3578
> Project: Camel
> Issue Type: New Feature
> Components: camel-core
> Affects Versions: 2.5.0
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Fix For: 2.7.0
>
>
> See nabble
> http://camel.465427.n5.nabble.com/Unit-Testing-Route-td3284803.html
> The idea is to be able to mock any endpoint on a route and thus be able to
> set expectations.
> In the 2.x architecture we will have to implement this using the adviceWith
> as the route must be {{re-processed}} so we can add the interceptor logic to
> mock
> any endpoints.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.