I am using below code for my Apache camel based application . I am using JUNIT4 and camel version 2.18 . And I am running test case in my Eclipse IDE. I am using MockEndPoint concept for testing my API
package com.service;
import org.apache.camel.*;
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 FilterTest extends CamelTestSupport {
@EndpointInject(uri = "mock:result")
protected MockEndpoint resultEndpoint;
@Produce(uri = "direct:start")
protected ProducerTemplate template;
@Override
public boolean isDumpRouteCoverage() {
return true;
}
@Test
public void testSendMatchingMessage() throws Exception {
String expectedBody = "<matched/>";
resultEndpoint.expectedBodiesReceived(expectedBody);
template.sendBodyAndHeader(expectedBody, "foo", "bar");
resultEndpoint.assertIsSatisfied();
}
@Test
public void testSendNotMatchingMessage() throws Exception {
resultEndpoint.expectedMessageCount(0);
template.sendBodyAndHeader("<notMatched/>", "foo", "notMatchedHeaderValue");
resultEndpoint.assertIsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
from("direct:start").filter(header("foo").isEqualTo("bar")).to("mock:result");
}
};
}}
And I am getting below error for this code
FilterTest.testSendMatchingMessage
initializationError(org.junit.runner.manipulation.Filter)
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testSendMatchingMessage], {ExactMatcher:fDisplayName=testSendMatchingMessage(com.service.FilterTest)], {LeadingIdentifierMatcher:fClassName=com.service.FilterTest,fLeadingIdentifier=testSendMatchingMessage]] from org.junit.internal.requests.ClassRequest@255316f2
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)