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 >
