[ 
https://issues.apache.org/jira/browse/CAMEL-12947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Antoine Wils updated CAMEL-12947:
---------------------------------
    Description: 
When expecting headers to be passed to a MockEndpoint that is never called the 
test should fail if the MockEndpoint was never called.

However it is succeeding.

Here an example of Junit 4 test succeeding when it should fail


{code:java}

import org.apache.camel.EndpointInject;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;

public class Test extends CamelTestSupport {

  @EndpointInject(uri = "mock:direct:foo")
  private MockEndpoint fooProducerMock;

  @Override
  public RouteBuilder createRouteBuilder() throws Exception {

    return new RouteBuilder() {

      @Override
      public void configure() throws Exception {}
    };
  }

  @Test
  public void failWhenHeaderAbsent() throws InterruptedException {
    fooProducerMock.expectedHeaderReceived("ghost", "you should be visible");
    MockEndpoint.assertIsSatisfied(context);
  }
}
{code}

  was:
When expecting headers to be passed to a MockEndpoint that is never called the 
test should fail if the MockEndpoint was never called.

However it is succeeding.

Here an example of Junit 4 test succeeding when it should fail


{code:java}

import org.apache.camel.EndpointInject;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
import org.springframework.test.util.ReflectionTestUtils;

public class Test extends CamelTestSupport {

  @EndpointInject(uri = "mock:direct:foo")
  private MockEndpoint fooProducerMock;

  @Override
  public RouteBuilder createRouteBuilder() throws Exception {

    return new RouteBuilder() {

      @Override
      public void configure() throws Exception {}
    };
  }

  @Test
  public void failWhenHeaderAbsent() throws InterruptedException {
    fooProducerMock.expectedHeaderReceived("ghost", "you should be visible");
    MockEndpoint.assertIsSatisfied(context);
  }
}
{code}


> MockEndpoint.expectedHeaderReceived should fail when no exchange received
> -------------------------------------------------------------------------
>
>                 Key: CAMEL-12947
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12947
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-test
>    Affects Versions: 2.22.1
>            Reporter: Antoine Wils
>            Priority: Major
>
> When expecting headers to be passed to a MockEndpoint that is never called 
> the test should fail if the MockEndpoint was never called.
> However it is succeeding.
> Here an example of Junit 4 test succeeding when it should fail
> {code:java}
> import org.apache.camel.EndpointInject;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.component.mock.MockEndpoint;
> import org.apache.camel.test.junit4.CamelTestSupport;
> import org.junit.Test;
> public class Test extends CamelTestSupport {
>   @EndpointInject(uri = "mock:direct:foo")
>   private MockEndpoint fooProducerMock;
>   @Override
>   public RouteBuilder createRouteBuilder() throws Exception {
>     return new RouteBuilder() {
>       @Override
>       public void configure() throws Exception {}
>     };
>   }
>   @Test
>   public void failWhenHeaderAbsent() throws InterruptedException {
>     fooProducerMock.expectedHeaderReceived("ghost", "you should be visible");
>     MockEndpoint.assertIsSatisfied(context);
>   }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to