lundi 17 février 2020

How to configure application.properties in camel tests?

I'm working on writing tests for the route The problem is all my routes contain properties that described in application.properties file e.g

from("oracleQueue:").to("my.endpoint")

It works fine but when I try to write a test - seems like this route can't find application.properties file with its properties. The error:

java.lang.IllegalArgumentException: Property with key [oracle.queue.url] not found in properties from text: oracleQueue:

My testcase:

public class RouteTest extends CamelTestSupport {

@Override
protected RoutesBuilder createRouteBuilder() {
    MyRouteBulder route = new MyRouteBulder ();
    ApplicationContext appContext = new ClassPathXmlApplicationContext("camel-context.xml");

    PropertiesComponent pc = new PropertiesComponent();
    pc.setLocation("application.properties");

    CamelContext context = new SpringCamelContext(appContext);

    context.addComponent("properties", pc);
    route.setContext(context);
    return route;
}


@Test
public void test() throws InterruptedException {
    MockEndpoint mockEndpoint = resolveMandatoryEndpoint("my.endpoint", MockEndpoint.class);
    mockEndpoint.expectedMessageCount(1);
    template.sendBody("oracleQueue:", "hello world");
    mockEndpoint.assertIsSatisfied();

}

}

How should I set up configuration file properly?

Aucun commentaire:

Enregistrer un commentaire