camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: frustration with multiple mock endpoints in 1 unit test.
Date Sun, 23 Aug 2009 10:14:14 GMT
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
> ---
> 


Mime
View raw message