Thanks for quick reply.

Turned out I was using the wrong runner class in the @RunWith annotation.
Following Claus instructions in the ticket solved the issue.

Thanks
Pontus

On Tue, 10 Jan 2017 at 23:24 Minh Tran <darth.minhs...@gmail.com> wrote:

> Hi Pontus,
>
> Yep I ended up raising this
> https://issues.apache.org/jira/browse/CAMEL-9332 <
> https://issues.apache.org/jira/browse/CAMEL-9332>
>
> It was fixed when I last checked this in 2.17.1. Not sure about 2.18.0
> though.
>
> > On 11 Jan 2017, at 9:13 am, Pontus Ullgren <ullg...@gmail.com> wrote:
> >
> > Hi,
> >
> > Did anyone ever raise a Jira for this issue ?
> >
> > It seems that @MockEndpointAndSkip still (2.18.0) does not work.
> >
> > Best regards
> > Pontus Ullgren
> >
> > On Tue, 9 Aug 2016 at 02:59 Minh Tran <darth.minhs...@gmail.com> wrote:
> >
> >> Hi, should I raise a jira for this?
> >>
> >>> On 5 Aug 2016, at 10:03 AM, Minh Tran <darth.minhs...@gmail.com>
> wrote:
> >>>
> >>> Hi
> >>>
> >>> I am using Camel 2.17.2, Spring Boot 1.3.6 and seeing strange behaviour
> >> in my unit tests. I’ve simplified it to the following example
> >>>
> >>> @RunWith(CamelSpringBootJUnit4ClassRunner.class)
> >>> @SpringApplicationConfiguration
> >>> @MockEndpointsAndSkip("direct:b")
> >>> @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
> >>> public class MockTest {
> >>>
> >>>      @Produce(uri = "direct:a")
> >>>      private ProducerTemplate producer;
> >>>
> >>>      @EndpointInject(uri = "mock:end")
> >>>      private MockEndpoint end;
> >>>
> >>>      @EndpointInject(uri = "mock:direct:b")
> >>>      private MockEndpoint directB;
> >>>
> >>>      @Autowired
> >>>      private CamelContext context;
> >>>
> >>>      @Configuration
> >>>      @EnableAutoConfiguration
> >>>      public static class Config extends SpringRouteBuilder {
> >>>
> >>>              @Override
> >>>              public void configure() throws Exception {
> >>>                      from("direct:a").to("direct:b");
> >>>                      from("direct:b").to("mock:end");
> >>>              }
> >>>      }
> >>>
> >>>      @Test
> >>>      public void testMock() throws InterruptedException {
> >>>              end.expectedMessageCount(0);
> >>>              directB.expectedBodiesReceived("hello");
> >>>
> >>>              producer.sendBody("hello");
> >>>
> >>>              MockEndpoint.assertIsSatisfied(context);
> >>>      }
> >>>
> >>>      @Test
> >>>      public void testMock2() throws InterruptedException {
> >>>              end.expectedMessageCount(0);
> >>>              directB.expectedBodiesReceived("hello");
> >>>
> >>>              producer.sendBody("hello");
> >>>
> >>>              MockEndpoint.assertIsSatisfied(context);
> >>>      }
> >>> }
> >>>
> >>> testMock and testMock2 are exactly the same and if run individually,
> >> they pass. However if you run both, the second one will always fail.
> >> Running them both inside eclipse and from maven command line exhibit the
> >> same behaviour.
> >>>
> >>> The error I get is
> >>> java.lang.AssertionError: mock://end Received message count. Expected:
> >> <0> but was: <1>
> >>>
> >>> Which must mean that the skipping isn’t working. Here’s the tracer
> >> output to confirm
> >>> org.apache.camel.processor.interceptor.Tracer -
> >> ID-minhmac-local-51406-1470352938165-1-2 >>> (route3) from(direct://a)
> -->
> >> direct://b <<< Pattern:InOnly,
> >> Headers:{breadcrumbId=ID-minhmac-local-51406-1470352938165-1-1},
> >> BodyType:String, Body:hello
> >>> org.apache.camel.processor.interceptor.Tracer -
> >> ID-minhmac-local-51406-1470352938165-1-2 >>> (route4) direct://b -->
> >> mock://end <<< Pattern:InOnly,
> >> Headers:{breadcrumbId=ID-minhmac-local-51406-1470352938165-1-1},
> >> BodyType:String, Body:hello
> >>>
> >>>
> >>>
> >>
> >>
>
>

Reply via email to