Hello, I am trying to test the number of messages and there is something I do not understand. The test ends successfully before the messages arrive at the mock endpoint. here is the test class:
public class WeatherCurrentTest extends CamelTestSupport { @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { DataFormat jaxbDataFormat = new JaxbDataFormat("com.mycompany.model.entities.weather"); from("file:src/test/resources") .split() .tokenizeXML("metData") .unmarshal(jaxbDataFormat) .to("log:com.mycompany.datarobot?level=INFO") .to("mock:meteo1"); } }; } @Test public void testNumberOfWeatherStations() throws Exception { MockEndpoint mock = getMockEndpoint("mock:meteo1"); mock.expectedMessageCount(5); String fileName = "src/test/resources/observation_si_latest.xml"; Endpoint endpoint = new FileEndpoint("file:" + fileName, new FileComponent()); File meteo = new File(fileName); String content = context.getTypeConverter().convertTo(String.class, meteo); //send data to route template.sendBodyAndHeader(endpoint, content, Exchange.FILE_NAME, fileName); Thread.sleep(1000); mock.assertIsSatisfied(); } } The input XML file has 9 <metData> elements by which the file is splitted and converted to pojos. I would expect the above test to fail, as I am expecting only 5 messages, but the test output (.to("log:com.mycompany.datarobot?level=INFO")) prints out 5 messages and then "quits": [2012/03/26 10:42:22.901] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText>jasno</nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Bilje pri Novi Gorici</domain_longTitle> <t_degreesC>15</t_degreesC> <dd_shortText>V</dd_shortText> <ff_val_kmh>22</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.907] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText>pretežno jasno</nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Kredarica</domain_longTitle> <t_degreesC>-10</t_degreesC> <dd_shortText>S</dd_shortText> <ff_val_kmh>11</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.912] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText>pretežno jasno</nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Letališče Cerklje ob Krki</domain_longTitle> <t_degreesC>11</t_degreesC> <dd_shortText>V</dd_shortText> <ff_val_kmh>14</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.917] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText>zmerno oblačno</nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Letališče Edvarda Rusjana Maribor</domain_longTitle> <t_degreesC>10</t_degreesC> <dd_shortText>SV</dd_shortText> <ff_val_kmh>11</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.927] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText>delno oblačno</nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Letališče Jožeta Pučnika Ljubljana</domain_longTitle> <t_degreesC>12</t_degreesC> <dd_shortText>JV</dd_shortText> <ff_val_kmh>25</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.929] INFO [s.n.d.WeatherCurrentTest:tearDown]: ******************************************************************************** [2012/03/26 10:42:22.930] INFO [s.n.d.WeatherCurrentTest:tearDown]: Testing done: (com.mycompany.datarobot.WeatherCurrentTest) [2012/03/26 10:42:22.930] INFO [s.n.d.WeatherCurrentTest:tearDown]: Took: 1.126 seconds (1126 millis) [2012/03/26 10:42:22.930] INFO [s.n.d.WeatherCurrentTest:tearDown]: ******************************************************************************** [2012/03/26 10:42:22.931] INFO [o.a.c.i.DefaultCamelContext:doStop]: Apache Camel 2.9.1 (CamelContext: camel-1) is shutting down [2012/03/26 10:42:22.931] INFO [o.a.c.i.DefaultShutdownStrategy:doShutdown]: Starting to graceful shutdown 1 routes (timeout 10 seconds) [2012/03/26 10:42:22.932] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText>jasno</nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Letališče Portorož</domain_longTitle> <t_degreesC>15</t_degreesC> <dd_shortText>SV</dd_shortText> <ff_val_kmh>22</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.934] INFO [o.a.c.i.DefaultShutdownStrategy:run]: Waiting as there are still 3 inflight and pending exchanges to complete, timeout in 10 seconds. [2012/03/26 10:42:22.937] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText></nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Lisca</domain_longTitle> <t_degreesC>0</t_degreesC> <dd_shortText></dd_shortText> <ff_val_kmh>0</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.941] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText>pretežno jasno</nn_shortText> <rh>0</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Ljubljana</domain_longTitle> <t_degreesC>12</t_degreesC> <dd_shortText>V</dd_shortText> <ff_val_kmh>14</ff_val_kmh> </metData> ] [2012/03/26 10:42:22.945] INFO [s.n.datarobot:log]: Exchange[ExchangePattern:InOnly, BodyType:com.mycompany.model.entities.weather.WeatherCurrent, Body:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <metData> <id>0</id> <nn_shortText></nn_shortText> <rh>31</rh> <msl>0</msl> <pa_shortText></pa_shortText> <domain_longTitle>Novo mesto</domain_longTitle> <t_degreesC>10</t_degreesC> <dd_shortText>V</dd_shortText> <ff_val_kmh>18</ff_val_kmh> </metData> ] [2012/03/26 10:42:23.935] INFO [o.a.c.i.DefaultShutdownStrategy:run]: Route: route1 shutdown complete, was consuming from: Endpoint[file://src/test/resources] [2012/03/26 10:42:23.936] INFO [o.a.c.i.DefaultShutdownStrategy:doShutdown]: Graceful shutdown of 1 routes completed in 1 seconds [2012/03/26 10:42:23.937] INFO [o.a.c.i.DefaultInflightRepository:doStop]: Shutting down with no inflight exchanges. [2012/03/26 10:42:23.938] INFO [o.a.c.i.DefaultCamelContext:doStop]: Uptime: 2.525 seconds [2012/03/26 10:42:23.938] INFO [o.a.c.i.DefaultCamelContext:doStop]: Apache Camel 2.9.1 (CamelContext: camel-1) is shutdown in 1.007 seconds PASSED: testNumberOfWeatherStations =============================================== Default test Tests run: 1, Failures: 0, Skips: 0 =============================================== =============================================== Default suite Total tests run: 1, Failures: 0, Skips: 0 =============================================== [TestNG] Time taken by org.testng.reporters.EmailableReporter@a20892: 4 ms [TestNG] Time taken by org.testng.reporters.jq.Main@e102dc: 31 ms [TestNG] Time taken by org.testng.reporters.XMLReporter@1fdc96c: 9 ms [TestNG] Time taken by [TestListenerAdapter] Passed:0 Failed:0 Skipped:0]: 0 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@127734f: 4 ms [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@a1807c: 41 ms I do not understand why the test ends at the expected messages count. Clearly I am doing something wrong. Can anyone bring me out of the dark please? -borut