All the expected bodies does is calls the equals method on your expected object against the object that actually came through. So if you told it to expect a list and you gave it a string, then it won’t pass.
On 21 Feb 2015, at 8:34 am, Christian Weichselbaum <c.weichselb...@cortical.io> wrote: > I just found out that the problem was that the error message did mislead me. > When I’m trying to get Strings through the route, expectedBodiesReceived > works perfectly fine. If I do send List<Object> across the routes, then I’m > struggling with the expectedBodiesReceived() method. > > > On 20 Feb 2015, at 21:38, Christian Weichselbaum <c.weichselb...@cortical.io> > wrote: > >> Hello, >> >> I’m having troubles with testing a camel route. Now I reduced the test and >> the route to almost nothing and was able to pinpoint the problem but am >> still struggling with finding a solution. >> >> The first snippet here does fail with following assertion problem: >> java.lang.AssertionError: mock://result Received message count. Expected: >> <1> but was: <0> >> --- >> mock.expectedMessageCount(1); >> mock.expectedBodiesReceived(posTypesExpected); >> template.sendBody("apple"); >> mock.assertIsSatisfied(); >> --- >> if I comment the 2nd line and omit the “expectedBodiesReceived” then <1> is >> expected and <1> is received as message count. Why do the first 4 lines fail >> and why does omitting the expectedBodies method solve the problem? >> --- >> mock.expectedMessageCount(1); >> //mock.expectedBodiesReceived(posTypesExpected); >> template.sendBody("apple"); >> mock.assertIsSatisfied(); >> --- >> >> >> Thank you very much for any help. >> >> Here is the JUnit Test: >> >> @RunWith(CamelSpringJUnit4ClassRunner.class) >> @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) >> @MockEndpoints("mock:result") >> @ContextConfiguration("classpath:META-INF/spring/TestCamel.xml") >> public class TestCamel extends CamelTestSupport { >> >> @EndpointInject(uri = "mock:result") >> protected MockEndpoint mock; >> >> @Produce(uri = "vm:retrievePOS_Start") >> protected ProducerTemplate template; >> >> /** >> * >> * @throws java.lang.Exception >> */ >> @Before >> public void setUp() throws Exception { >> } >> >> /** >> * >> * @throws java.lang.Exception >> */ >> @After >> public void tearDown() throws Exception { >> } >> >> @Test >> public final void test() throws InterruptedException { >> List<WiktionaryPosType> posTypesExpected = new >> ArrayList<WiktionaryPosType>(); >> posTypesExpected.add(WiktionaryPosType.NOUN); >> mock.expectedMessageCount(1); >> mock.expectedBodiesReceived(posTypesExpected); >> template.sendBody("apple"); >> mock.assertIsSatisfied(); >> } >> >> And that’s how the spring xml looks like: >> >> <?xml version="1.0" encoding="UTF-8"?> >> >> <beans xmlns="http://www.springframework.org/schema/beans" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans.xsd >> http://camel.apache.org/schema/spring >> http://camel.apache.org/schema/spring/camel-spring.xsd"> >> >> >> <camelContext id="testCamel" >> xmlns="http://camel.apache.org/schema/spring"> >> >> <route> >> <from uri="vm:retrievePOS_Start" /> >> >> <to uri="mock:result" /> >> </route> >> >> </camelContext> >> >> </beans> >> >> Mit freundlichen Grüßen, >> With kind regards, >> >> Christian Weichselbaum >> Senior Programmer & Data Scientist >> >> cortical.io >> Mariahilferstrasse 4, 1070 Vienna, Austria >> +43 676 725 1954 >> c.weichselb...@cortical.io >> http://cortical.io >> >> >> >> <facebook_32.png><linkedin_32.png><twitter_32.png><google_32.png> >> >