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: problem with the intercept pattern
Date Fri, 28 Nov 2008 07:15:14 GMT
Hi,

After running the test and dig the code,  the
MockEndpont.expectedMinimumMessageCount() is not right.
Actually, the mock:z only get one message here.
I will do a quick fix for the expectedMinimumMessageCount()[1].

Here is log about the route

[Route[[From[direct:a]] -> [Intercept[[Choice[[When[{not
header(recipientListHeader).matches(mock:[xe],mock:[gy])} ->
[org.apache.camel.model.ProceedType@c21495]]] Otherwise[[To[mock:z],
org.apache.camel.model.ProceedType@c21495]]]]]]]] routes: []

Now I don't know why there is no recipientList type output
[Route[[From[direct:a]] ->
[RecipientList[{tokenize(header(recipientListHeader), ,)}]]]] routes: []

[1]https://issues.apache.org/activemq/browse/CAMEL-1125

Willem


Sylvester wrote:
> Hi,
> I am running a JUnit test and doing the following:
> 
> template.sendBodyAndHeader("direct:a", "answer", "recipientListHeader",
> "mock:x,mock:y");
> intercept(header("recipientListHeader").matchesRegex("mock:[xe],mock:[gy]")).to("mock:z");
> 
> 
> from("direct:a").recipientList(header("recipientListHeader").tokenize(","));
> 
> 
> Doubt #1:
> 
> When the messages are actually sent, will the either have:
> 
>  a. one of the headers (mock:x or mock:y) OR
>  b. both the headers (mock:x and mock:y) ?
> 
> Doubt #2:
> 
> According to me (just an educated guess) the right answer is 'a'.
> Assuming this is the answer no messages should be intercepted and mock:z
> should not get anything. However, when I run the test:
> 
> MockEndpoint x = getMockEndpoint("mock:x");
>        MockEndpoint y = getMockEndpoint("mock:y");
>        MockEndpoint z = getMockEndpoint("mock:z");
>              x.expectedBodiesReceived("answer");
>        y.expectedBodiesReceived("answer");
>        z.expectedBodiesReceived("answer");
>        z.100);
> 
>        sendBody();
>        assertMockEndpointsSatisifed();
> 
> it is still shows all tests as successful. How is this happening? The
> exact output is:
> 
>  org.apache.camel.impl.DefaultCamelContext <init>
> INFO: JMX enabled. Using InstrumentationLifecycleStrategy.
>  org.apache.camel.component.mock.MockEndpoint assertIsSatisfied
> INFO: Asserting: Endpoint[mock:z] is satisfied
>  org.apache.camel.component.mock.MockEndpoint assertIsSatisfied
> INFO: Asserting: Endpoint[mock:y] is satisfied
>  org.apache.camel.component.mock.MockEndpoint assertIsSatisfied
> INFO: Asserting: Endpoint[mock:x] is satisfied
> 
> Now, even if I'm wrong and 'a' is not the answer to doubt#1, and
> messages do reach mock:z, how can it get 100 messages?
> 
> Thanks,
> Sylvester
>      


Mime
View raw message