Yeah, I figured that one out

Geoffrey A. Gershaw
Credit eTrading Dev - RDO
1 919 994 6412


-----Original Message-----
From: Christian Müller [mailto:christian.muel...@gmail.com] 
Sent: Friday, May 25, 2012 9:44 AM
To: users@camel.apache.org
Subject: RE: Unit testing a method with Exchange as a Param

You are welcome. And replace in my last post
CamelContext ctx = new CamelContext();
with
CamelContext ctx = new DefaultCamelContext();

It was a bit too late yesterday... ;-)

Best,
Chrostian
Sent from a mobile device
Am 25.05.2012 14:15 schrieb "Gershaw, Geoffrey" <
geoffrey.gers...@credit-suisse.com>:

> Christian,
>
> You are a gentleman and a scholar. I need to be a better Camel Rider. I
> didn't realize how easy it is to Unit test. I thought I'd have to launch
> the whole Spring dependency.
>
> Thanks again
>
> Geoffrey A. Gershaw
> Credit eTrading Dev - RDO
> 1 919 994 6412
>
>
> -----Original Message-----
> From: Christian Müller [mailto:christian.muel...@gmail.com]
> Sent: Thursday, May 24, 2012 6:40 PM
> To: users@camel.apache.org
> Subject: Re: Unit testing a method with Exchange as a Param
>
> I wouldn't mock the Exchange:
>
> CamelContext ctx = new CamelContext();
> Exchange ex = new DefaultExchange(ctx);
>
> // your code...
>
> Best,
> Christian
>
> On Thu, May 24, 2012 at 11:31 PM, Gershaw, Geoffrey <
> geoffrey.gers...@credit-suisse.com> wrote:
>
> > Hello all,
> >
> > I am trying to unit test the following method, which is essentially the
> > Sending to multiple JMS destinations from one endpoint example from the
> > camel website.  Since the Exchange object is a param and contains the
> > result, I'm having trouble Mocking it. The below test fails at the ***
> > line. actualTopicName is null :( . Essentially all the publish method is
> > doing, is adding headers to the In Msg of the Exchange object.
> >
> > Appreciate the advice.
> >
> > Geoff
> >
> >
> >
> >        @Test
> >        public void testSingleTopicPublish(){
> >                MarketData md = createMarketData();
> >
> >                Exchange exchange = mock(Exchange.class);
> >                Message inMsg = mock(Message.class);
> >
> >
> >                when(exchange.getIn()).thenReturn(inMsg);
> >                when(inMsg.getBody(Publishable.class)).thenReturn(md);
> >
> >
> >                String singleTopic = "TEST.TOPIC";
> >                destinationResolver = new
> > JMSDestinationResolver(singleTopic,PublishType.SINGLE_DESTINATION);
> >                destinationResolver.publish(exchange);
> >
> >                Message actualInMsg = exchange.getIn();
> >                String actualTopicName = (String)
> > actualInMsg.getHeader(JmsConstants.JMS_DESTINATION_NAME);
> >
> >                assertEquals(singleTopic, actualTopicName);
> > ************************************
> >
> >
> >        }
> >
> >
> >        /**
> >         * Send exchange to a JMS Destination determined at Runtime
> >         * @param exchange
> >         */
> >        public void publish(Exchange exchange){
> >                Publishable publishable=
> > exchange.getIn().getBody(Publishable.class);
> >                Map<String,String> origMsgHeaders =
> > publishable.getPublishProperties();
> >                Map<String,Object> msgHeaders = new HashMap<String,
> > Object>(origMsgHeaders);
> >                String destinationName = null;
> >
> >                //If we are publishing on muiltiple topics and there is
> > no destinationPrefix can't publish this msg
> >                if(publishType == PublishType.MULTIPLE_DESTINATIONS){
> >
> > if(!StringUtils.isEmpty(publishable.getPublishTopicName())){
> >                                destinationName = String.format("%s.%s",
> > destinationPrefix, publishable.getPublishTopicName());
> >                        }else{
> >                                log.error("Empty topicName for msg: " +
> > publishable);
> >                        }
> >                }
> >                else{
> >                        //The we are publishing on 1 topic, grab it from
> > config
> >                        destinationName = destinationPrefix;
> >                }
> >
> >                if(log.isDebugEnabled()){
> >                        log.debug("Destination is " + destinationName);
> >                }
> >                msgHeaders.put(JmsConstants.JMS_DESTINATION_NAME,
> > destinationName);
> >                exchange.getIn().setHeaders(msgHeaders);
> >        }
> >
> >
> >
> ===============================================================================
> > Please access the attached hyperlink for an important electronic
> > communications disclaimer:
> > http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
> >
> >
> ===============================================================================
> >
> >
>
>
> ===============================================================================
> Please access the attached hyperlink for an important electronic
> communications disclaimer:
> http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
>
> ===============================================================================
>
>

=============================================================================== 
Please access the attached hyperlink for an important electronic communications 
disclaimer: 
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html 
=============================================================================== 

Reply via email to