Have you tried just overriding the isMockEndpoints() method: https://github.com/jwcarman/camel-transaction/blob/master/src/test/java/com/carmanconsulting/camel/TestMyRouteBuilder.java
Alternatively, you can just use JMS in your unit test: https://github.com/jwcarman/camel-transaction/blob/master/src/test/java/com/carmanconsulting/camel/AbstractRouteBuilderTest.java On Thu, Nov 8, 2012 at 2:34 AM, David Karlsen <[email protected]> wrote: > I have a follow up question on this. > I have this route: > > <camel:route id="inboundFromRtsRoute"> > <camel:from > > uri="jms:queue:{{.online.mq.reservationsReceiveQueue}}?connectionFactory=#rtsConnectionFactory&destinationResolver=#rtsDestinationResolver&asyncStartListener=true&transactionManager=#rtsJmsTransactionManager&transacted=true&lazyCreateTransactionManager=false&disableReplyTo=true" > /> > <camel:transacted id="transacted" > ref="TransactionManagerPolicyRequired" /> <!--look further down the > mail on this one--> > <camel:to > > uri="log:PERF_LOG?level=INFO&groupInterval=60000&groupDelay=10000&groupActiveOnly=false" > /> > <camel:log logName="RTS_MESSAGE_TRACE" > loggingLevel="INFO" > message="REQUEST: ${body}" /> > <camel:choice> > <camel:when > xmlns:ledgerres="fc:evry:com:xsd:fundscheckmaintainavailablebalance"> > > <camel:xpath>/ledgerres:Document</camel:xpath> > <camel:to > > uri="validator:META-INF/xsd/fundscheckmaintainavailablebalance.xsd" /> > <camel:unmarshal> > <camel:jaxb prettyPrint="true" > > contextPath="fc.evry.com.xsd.fundscheckmaintainavailablebalance" > > partClass="fc.evry.com.xsd.fundscheckmaintainavailablebalance.Document" > /> > </camel:unmarshal> > <camel:to > > uri="bean:mainLedgerIntegrationServiceImpl?method=processReservationFromMainLedger( > ${body} )" /> > </camel:when> > <camel:when > xmlns:ledgerposting="tg:evry:com:xsd:transactiongatetransfertransaction"> > > <camel:xpath>/ledgerposting:Document</camel:xpath> > <camel:to > > uri="validator:META-INF/xsd/transactiongatetransfertransaction.xsd" /> > <camel:unmarshal> > <camel:jaxb prettyPrint="true" > > contextPath="tg.evry.com.xsd.transactiongatetransfertransaction" > > partClass="tg.evry.com.xsd.transactiongatetransfertransaction.Document" > /> > </camel:unmarshal> > <camel:to > > uri="bean:mainLedgerIntegrationServiceImpl?method=processPostingFromMainLedger( > ${body} )" /> > </camel:when> > </camel:choice> > <camel:onException useOriginalMessage="true"> > > <camel:exception>java.lang.Exception</camel:exception> > <camel:handled> > <camel:constant>true</camel:constant> > </camel:handled> > <camel:to > uri="log:RTS_MSG_EXCHANGE?showAll=true&level=ERROR" /> > <camel:to id="inboundFromErrorQueue" > uri="jms:queue:{{.online.mq.reservationsReceiveErrorQueue}}?connectionFactory=#rtsConnectionFactory&destinationResolver=#rtsDestinationResolver&transactionManager=#rtsJmsTransactionManager&disableReplyTo=true" > /> > </camel:onException> > </camel:route> > > this route was easily unit-testable by doing overrides in my setup: > camelContext.getRouteDefinition( "inboundFromRtsRoute" ).adviceWith( > camelContext, new AdviceWithRouteBuilder() > { > @Override > public void configure() > throws Exception > { > replaceFromWith( mockEndpoint.getDefaultEndpoint() ); > weaveById( "inboundFromRtsErrorQueue" ).replace().to( > mockInboundFromRtsErrorQueue ); > } > } ); > > before I added the transacted element. > Is there any easy way for me to skip the transacted node in the route? > I tried weaveById( "transacted" ).remove(); but that removes the node > and all child nodes it seems. I just wanna replace the jms input route > AND the transacted element with my mock endpoint. > > Is this possible? > > Yes I could use embedded active mq for testing - but that leads to a > lot of excessive config. > > > > 2012/11/8 James Carman <[email protected]>: >> You can inject mock objects into your route builders very easily. >> Just pick your mock object framework of choice and inject them when >> you create your RouteBuilder. >> >> On Wed, Nov 7, 2012 at 10:37 AM, zzkozak <[email protected]> wrote: >>> Hi, >>> >>> I have the following route and would like to test it by throwing an >>> exception by the orderRequestCreator bean. How do I do that? >>> >>> >>> >>> I am using annotated JUnit tests, like this: >>> >>> >>> >>> Thank you in advance, >>> Marcin >>> >>> >>> >>> -- >>> View this message in context: >>> http://camel.465427.n5.nabble.com/How-to-mock-a-bean-in-a-route-tp5722307.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. > > > > -- > -- > David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen
