Make sure to configure your unit test that you are using advice with There is a alert box about this in the docs
On Fri, Oct 27, 2017 at 5:31 PM, Oliver Wulff <[email protected]> wrote: > It's failing with the same error in version 2.18.5, 2.19.3 and 2.20.0 as well. > > ________________________________ > Von: Oliver Wulff > Gesendet: Freitag, 27. Oktober 2017 17:27:06 > An: [email protected] > Betreff: AW: Sprint Unit test fails when OnCompletion configured > > > Sorry for missing this important information. It's 2.17.6 > > ________________________________ > Von: Claus Ibsen <[email protected]> > Gesendet: Freitag, 27. Oktober 2017 16:51:27 > An: [email protected] > Betreff: Re: Sprint Unit test fails when OnCompletion configured > > What version of CAmel do you use > > On Fri, Oct 27, 2017 at 4:12 PM, Oliver Wulff <[email protected]> wrote: >> Hi all >> >> >> I've got a very simple route which reads from a file, does some processing >> and then sends it by mail. I've also created a unit test based on >> CamelSpringTestSupport where I mock the smtp endpoint and update the >> consuming endpoint: >> >> >> @Override >> protected void doPostSetup() throws Exception { >> >> >> context.getRouteDefinition(ROUTE_ID).adviceWith(context, new >> AdviceWithRouteBuilder() { >> @Override >> public void configure() throws Exception { >> replaceFromWith("direct:teststart"); >> weaveAddFirst().convertBodyTo(String.class); >> weaveAddLast().log(LoggingLevel.DEBUG, "End: >> ${body}"); >> >> } >> }); >> >> >> @Override >> public String isMockEndpointsAndSkip() { >> return "smtp*"; >> } >> >> >> >> This is the route: >> >> >> <onCompletion> >> <to uri="jms:topic:MON?disableReplyTo=true" /> >> </onCompletion> >> >> <route id="email-deliver"> >> <from uri="file://{{src.folder}}?include=.*.xml" /> >> <unmarshal> >> <jaxb contextPath="com.example.email.jaxb"/> >> </unmarshal> >> <process ref="dummy" /> >> <to uri="smtp://{{smtp.hostname}}?contentType=text/html" /> >> </route> >> >> >> >> When I run the maven project without <onCompletion> it works but if I >> activate <onCompletion> it fails with the following error: >> >> >> >> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 4.577 sec >> <<< FAILURE! - in com.example.email.CamelRouteTest >> testSendingMail(com.example.email.CamelRouteTest) Time elapsed: 4.514 sec >> <<< ERROR! >> java.lang.IllegalArgumentException: There are no outputs which matches: * in >> the route: Route(email-deliver)[[From[direct:teststart]] -> >> [onCompletion[[To[jms:topic:MON?disableReplyTo=true]]], >> Unmarshal[org.apache.camel.model.dataformat.JaxbDataFormat@7ea08277], >> process[ref:dummy], To[smtp://{{smtp.hostname}}?contentType=text/html]]] >> at >> org.apache.camel.builder.AdviceWithTasks$3.task(AdviceWithTasks.java:305) >> at >> org.apache.camel.model.RouteDefinition.adviceWith(RouteDefinition.java:281) >> at >> com.example.email.CamelRouteTest.doPostSetup(CamelRouteTest.java:37) >> >> >> Results : >> >> Tests in error: >> CamelRouteTest>CamelTestSupport.setUp:240->doPostSetup:37 ยป >> IllegalArgument Th... >> >> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0 >> >> >> >> I've searched in the internet for this error "There are no outputs which >> matches: *" but haven't found anything which explains why I've discovered >> this behaviour. >> >> >> What do I have to change to fix the unit test. >> >> >> Thanks for your feedback >> >> Oli >> >> > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2
