I am trying to mock in
and out
paths of Camel Routes but I don't know how to provide mock in and out path.Please help me to fix this.Thanks in advance.
application.properties
inputFilePath = src/main/resources/in
outputFilePath = src/main/resources/out
application-test.properties
inputFilePath = src/test/java/in
outputFilePath = src/test/java/out
Router and Processor:
@Component
public class FileLineByLineRouter extends RouteBuilder {
@Value("${inputFilePath}")
private String inputFilePath;
@Value("${outputFilePath}")
private String outputFilePath;
@Override
public void configure() throws Exception {
from("file://" + inputFilePath + "?delete=true").routeId("FileLineByLineRoute").marshal().string("UTF-8")
.split(body().tokenize("\n")).streaming().process(getFileParsingProcessor())
.to("file://" + outputFilePath + "?fileExist=Append").end();
}
@Bean
public Processor getFileParsingProcessor() {
return new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
String order = exchange.getIn().getBody(String.class);
order = order + ": " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss S").format(new Date()) + "\n";
exchange.getIn().setBody(order);
}
};
}
}
Junit Testing Code:
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class })
@SpringBootTest(classes = FileLineByLineRouter.class)
@ActiveProfiles("test")
@EnableAutoConfiguration
public class FileLineByLineRouterTest2 extends CamelTestSupport {
@Autowired
protected CamelContext camelContext;
@Test
public void test() throws Exception {
camelContext.start();
Thread.sleep(2000);
File outDir = new File("src/test/java/out");
System.out.println(outDir.getAbsolutePath());
assertTrue(outDir.isDirectory());
assertTrue(outDir.listFiles().length != 0);
}
}
Logs:
114 SpringCamelContext : Route: FileLineByLineRoute started and consuming from: file://src/test/java/in?delete=true
116 SpringCamelContext : Total 1 routes, of which 1 are started.
122 SpringCamelContext : Apache Camel 2.19.1 (CamelContext: camel-1) started in 0.582 seconds
138 FileLineByLineRouterTest2 : Started FileLineByLineRouterTest2 in 10.064 seconds (JVM running for 12.063)
179 FileLineByLineRouterTest2 : ********************************************************************************
180 FileLineByLineRouterTest2 : Testing: test(FileLineByLineRouterTest2)
180 FileLineByLineRouterTest2 : ********************************************************************************
222 o.apache.camel.impl.DefaultCamelContext : Apache Camel 2.19.1 (CamelContext: camel-2) is starting
223 o.a.c.m.DefaultManagementStrategy : JMX is disabled
238 o.a.c.i.converter.DefaultTypeConverter : Loaded 193 type converters
239 o.apache.camel.impl.DefaultCamelContext : StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
239 o.apache.camel.impl.DefaultCamelContext : Total 0 routes, of which 0 are started.
239 o.apache.camel.impl.DefaultCamelContext : Apache Camel 2.19.1 (CamelContext: camel-2) started in 0.017 seconds
239 SpringCamelContext : Apache Camel 2.19.1 (CamelContext: camel-1) is starting
239 SpringCamelContext : Total 1 routes, of which 1 are started.
239 SpringCamelContext : Apache Camel 2.19.1 (CamelContext: camel-1) started in 0.000 seconds
C:\Users\workspace\CamelProject\src\test\java\out
241 FileLineByLineRouterTest2 : ********************************************************************************
241 FileLineByLineRouterTest2 : Testing done: test(FileLineByLineRouterTest2)
241 FileLineByLineRouterTest2 : Took: 0.002 seconds (2 millis)
241 FileLineByLineRouterTest2 : ********************************************************************************
242 o.apache.camel.impl.DefaultCamelContext : Apache Camel 2.19.1 (CamelContext: camel-2) is shutting down
314 o.apache.camel.impl.DefaultCamelContext : Apache Camel 2.19.1 (CamelContext: camel-2) uptime 0.092 seconds
318 o.apache.camel.impl.DefaultCamelContext : Apache Camel 2.19.1 (CamelContext: camel-2) is shutdown in 0.071 seconds
336 o.s.w.c.s.GenericWebApplicationContext : Closing org.springframework.web.context.support.GenericWebApplicationContext@394df057: startup date [Mon Jan 08 17:32:43 IST 2018]; root of context hierarchy
344 o.a.camel.spring.SpringCamelContext : Apache Camel 2.19.1 (CamelContext: camel-1) is shutting down
346 o.a.camel.impl.DefaultShutdownStrategy : Starting to graceful shutdown 1 routes (timeout 300 seconds)
356 INFO 19900 --- [ - ShutdownTask] o.a.camel.impl.DefaultShutdownStrategy : Route: FileLineByLineRoute shutdown complete, was consuming from: file://src/test/java/in?delete=true
356 o.a.camel.impl.DefaultShutdownStrategy : Graceful shutdown of 1 routes completed in 0 seconds
362 o.a.camel.spring.SpringCamelContext : Apache Camel 2.19.1 (CamelContext: camel-1) uptime 0.123 seconds
362 o.a.camel.spring.SpringCamelContext : Apache Camel 2.19.1 (CamelContext: camel-1) is shutdown in 0.018 seconds