Sorry, I've been tweaking the code: https://github.com/jwcarman/camel-transaction/blob/master/src/test/java/com/carmanconsulting/camel/TestJdbcRouteBuilder.java
On Thu, Nov 8, 2012 at 3:07 PM, David Karlsen <[email protected]> wrote: > The 1st link gave a 404. > Den 8. nov. 2012 14:25 skrev "James Carman" <[email protected]> > følgende: > >> 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 >>
