camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: frustration with multiple mock endpoints in 1 unit test.
Date Sun, 23 Aug 2009 12:37:22 GMT
On Sun, Aug 23, 2009 at 2:18 PM, Mick Knutson<mknutson@baselogic.com> wrote:
> I have tried everything I can at least 20 times. I really appreciate the
> help on this one as there is no pattern for me to follow to solve this.
> Sometimes it works, and sometimes it doesn't.
>
> I also tried this in the route (none successful):
>
>
> from("activemq:Consumer.1.VirtualTopic.Table.1").wireTap("mock://resultAllClients").to("mock:resultClient1");
>
>        from("seda:resultClient1").to("mock:resultClient1");
>
>        from("seda:resultClient2").to("mock:resultClient2");
>
>
> Is there any advise anyone can give me to understand a better way to DEBUG
> through the routes and messages?
>

Use the tracer
http://camel.apache.org/tracer

> ---
> Thank You…
>
> Mick Knutson, President
>
> BASE Logic, Inc.
> Enterprise Architecture, Design, Mentoring & Agile Consulting
> p. (866) BLiNC-411: (254-6241-1)
> f. (415) 685-4233
>
> Website: http://baselogic.com
> Linked IN: http://linkedin.com/in/mickknutson
> Vacation Rental: http://tahoe.baselogic.com
> ---
>
>
>
> On Sun, Aug 23, 2009 at 5:09 AM, Mick Knutson <mknutson@baselogic.com>wrote:
>
>> Here is the 1 Route file I have:
>>
>>     @Override
>>     public void configure() throws Exception {
>>         log.info("//@@@@@ CLIENT ROUTES
>> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@//");
>>
>>
>> //from("activemq:Consumer.1.VirtualTopic.Table.1").wireTap("mock://resultAllClients").to("mock:resultClient1");
>>
>>
>> from("seda:resultClient1").wireTap("mock://resultAllClients").to("mock:resultClient1");
>>
>> from("seda:resultClient2").wireTap("mock://resultAllClients").to("mock:resultClient2");
>>
>> from("seda:resultClient3").wireTap("mock://resultAllClients").to("mock:resultClient3");
>>
>> from("seda:resultClient4").wireTap("mock://resultAllClients").to("mock:resultClient4");
>>
>> from("seda:resultClient5").wireTap("mock://resultAllClients").to("mock:resultClient5");
>>
>> from("seda:resultClient6").wireTap("mock://resultAllClients").to("mock:resultClient6");
>>
>> from("seda:resultClient7").wireTap("mock://resultAllClients").to("mock:resultClient7");
>>
>> from("seda:resultClient8").wireTap("mock://resultAllClients").to("mock:resultClient8");
>>
>> from("seda:resultClient9").wireTap("mock://resultAllClients").to("mock:resultClient9");
>>
>> from("seda:resultClient10").wireTap("mock://resultAllClients").to("mock:resultClient10");
>>
>> from("seda:resultClient11").wireTap("mock://resultAllClients").to("mock:resultClient11");
>>
>>     } // end configure
>>
>>
>> ---
>> Thank You…
>>
>> Mick Knutson, President
>>
>> BASE Logic, Inc.
>> Enterprise Architecture, Design, Mentoring & Agile Consulting
>> p. (866) BLiNC-411: (254-6241-1)
>> f. (415) 685-4233
>>
>> Website: http://baselogic.com
>> Linked IN: http://linkedin.com/in/mickknutson
>> Vacation Rental: http://tahoe.baselogic.com
>> ---
>>
>>
>>
>> On Sun, Aug 23, 2009 at 3:14 AM, Willem Jiang <willem.jiang@gmail.com>wrote:
>>
>>> Hi Mick,
>>>
>>> Can you show me the route rule ?
>>> It will help us to trace the issue :)
>>>
>>> Willem
>>>
>>>
>>> Mick Knutson wrote:
>>>
>>>> I have a unit test that has a wiretap that routes the message to a mock
>>>> endpoint.
>>>> Here is what works:
>>>>
>>>>    @EndpointInject(uri = "mock:resultAllClients")
>>>>    protected MockEndpoint resultAllClients;
>>>>
>>>>    @EndpointInject(uri = "mock:resultClient1")
>>>>    protected MockEndpoint resultClient1;
>>>>    @EndpointInject(uri = "mock:resultClient2")
>>>>    protected MockEndpoint resultClient2;
>>>>    @EndpointInject(uri = "mock:resultClient3")
>>>>    protected MockEndpoint resultClient3;
>>>>    @EndpointInject(uri = "mock:resultClient4")
>>>>    protected MockEndpoint resultClient4;
>>>>
>>>>    @Test
>>>>    public void testSendBetMessage() throws Exception {
>>>>        log.info("Send a test message to Table Service");
>>>>
>>>>        //resultAllClients.expectedMinimumMessageCount(3);
>>>>        resultClient1.expectedMessageCount(1);
>>>>        resultClient2.expectedMessageCount(1);
>>>>        //resultClient3.expectedMessageCount(1);
>>>>        //resultClient4.expectedMessageCount(1);
>>>>
>>>>
>>>>        // Send the test message to make Server Service create our Status
>>>> Message
>>>>        producerTemplate.sendBody("jms:queue:bets",
>>>>                ExchangePattern.InOnly, 22);
>>>>
>>>>        // now lets assert that the mock endpoint received messages
>>>>        resultClient1.assertIsSatisfied();
>>>>        resultClient2.assertIsSatisfied();
>>>>        //resultClient3.assertIsSatisfied();
>>>>        //resultClient4.assertIsSatisfied();
>>>>
>>>>        //resultAllClients.assertIsSatisfied();
>>>>        log.info("XXXXXXXXXX DONE
>>>> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
>>>>
>>>>    }
>>>>
>>>>    /*@After
>>>>    public void finalizeTests() {
>>>>        // resultAllClients.reset();
>>>>        resultClient1.reset();
>>>>        resultClient2.reset();
>>>>        resultClient3.reset();
>>>>        // resultClient4.reset();
>>>>    }*/
>>>>
>>>>
>>>>
>>>> This is in 1 unit test class and the way it is above has all assertions
>>>> pass.
>>>> If any of the following things change, I get:
>>>>
>>>> java.lang.AssertionError: mock://resultClient1 Received message count.
>>>> Expected: <1> but was: <0>
>>>>
>>>>
>>>> 1. If I uncomment the finalizeTests() method, the error starts.
>>>>
>>>> 2. If I uncomment resultClient3, resultClient4 it might start working,
>>>> then
>>>> randomly it will show up again and I have to comment them out in order
>>>> for
>>>> the test to pass again.
>>>>
>>>>
>>>> Is there some bug/defect in the Mock that I have not googled?
>>>>
>>>>
>>>>
>>>> ---
>>>> Thank You…
>>>>
>>>> Mick Knutson, President
>>>>
>>>> BASE Logic, Inc.
>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting
>>>> p. (866) BLiNC-411: (254-6241-1)
>>>> f. (415) 685-4233
>>>>
>>>> Website: http://baselogic.com
>>>> Linked IN: http://linkedin.com/in/mickknutson
>>>> Vacation Rental: http://tahoe.baselogic.com
>>>> ---
>>>>
>>>>
>>>
>>
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Mime
View raw message