Thank you for the quick fix - I’m building 2.17-SNAPSHOT now so I can work with this some more.
I agree completely on the first case. I actually assumed that’s what would happen for some reason. Is the component currently limited to one message per file? I hadn’t thought about the second - my routes are almost always order-dependent (i.e. FIFO), so I normally wouldn’t use that one. > On Mar 10, 2016, at 9:13 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > > One use case it may be nice would be to allow to use 1 file, but each > row in the file is a expected message. > In case you test with 1000s of messages. > > Also maybe being able to specify that the order can be random. I think > today they are in the order the consumer fetches the messages. > > On Thu, Mar 10, 2016 at 5:06 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >> Hi >> >> I have reproduced your issue and logged a ticket >> https://issues.apache.org/jira/browse/CAMEL-9696 >> >> And also work on improving so those options you pass on the file >> endpoint are passed on. Today they are dropped. >> >> On Thu, Mar 10, 2016 at 4:56 PM, Quinn Stevenson >> <qu...@pronoia-solutions.com> wrote: >>> Claus - >>> >>> Sorry - I missed one part of your comment the first time. >>> >>> For this test, yes - I only expect a single value, and it’s out in a file. >>> What I’d like to be able to do is put a bunch of values in that file and >>> have the MockEndpoint setup with the correct expected message bodies. >>> >>> I actually expected this test to fail because my test data file has about >>> 50 lines in it, so I expected the Mock to fail because the test only sends >>> one message. >>> >>> Hopefully that clarifies what I’m after here >>> >>>> On Mar 10, 2016, at 8:50 AM, Quinn Stevenson <qu...@pronoia-solutions.com> >>>> wrote: >>>> >>>> Here’s a single Camel test that shows the issue. >>>> >>>> package com.pronoia.camel; >>>> >>>> import org.apache.camel.builder.RouteBuilder; >>>> import org.apache.camel.test.junit4.CamelTestSupport; >>>> import org.junit.Test; >>>> >>>> public class JavaTestRouteTest extends CamelTestSupport { >>>> @Override >>>> protected RouteBuilder createRouteBuilder() throws Exception { >>>> return new RouteBuilder() { >>>> @Override >>>> public void configure() throws Exception { >>>> from( "direct://source <direct://source>") >>>> .to( "test:file://data?noop=true" ); >>>> } >>>> }; >>>> } >>>> >>>> @Test >>>> public void testRoute() throws Exception { >>>> template.sendBody( "direct://source <direct://source>", "My Value"); >>>> >>>> assertMockEndpointsSatisfied(); >>>> } >>>> >>>> } >>>>> On Mar 10, 2016, at 8:11 AM, Quinn Stevenson <qu...@pronoia-solutions.com >>>>> <mailto:qu...@pronoia-solutions.com>> wrote: >>>>> >>>>> Forgot to mention I’m using v2.16.2. >>>>> >>>>> Also, here’s the full blueprint and test class >>>>> >>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0 >>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>" >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance >>>>> <http://www.w3.org/2001/XMLSchema-instance>" >>>>> xmlns:camel="http://camel.apache.org/schema/blueprint >>>>> <http://camel.apache.org/schema/blueprint>" >>>>> xsi:schemaLocation=" >>>>> http://www.osgi.org/xmlns/blueprint/v1.0.0 >>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0> >>>>> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd >>>>> <http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd> >>>>> http://camel.apache.org/schema/blueprint >>>>> <http://camel.apache.org/schema/blueprint> >>>>> http://camel.apache.org/schema/blueprint/camel-blueprint.xsd >>>>> <http://camel.apache.org/schema/blueprint/camel-blueprint.xsd>"> >>>>> >>>>> <camel:routeContext id="test-route-context" >>>>> xmlns="http://camel.apache.org/schema/blueprint >>>>> <http://camel.apache.org/schema/blueprint>"> >>>>> <route id="direct-to-test"> >>>>> <from uri="direct://source <direct://source>"/> >>>>> <to uri="test:file://data?noop=true" /> >>>>> </route> >>>>> </camel:routeContext> >>>>> >>>>> <camel:camelContext id="blueprint-camel-context" >>>>> xmlns="http://camel.apache.org/schema/blueprint >>>>> <http://camel.apache.org/schema/blueprint>"> >>>>> <routeContextRef ref="test-route-context"/> >>>>> </camel:camelContext> >>>>> >>>>> </blueprint> >>>>> >>>>> >>>>> package com.pronoia.camel; >>>>> >>>>> import org.apache.camel.EndpointInject; >>>>> import org.apache.camel.component.mock.MockEndpoint; >>>>> import org.apache.camel.test.blueprint.CamelBlueprintTestSupport; >>>>> import org.junit.Before; >>>>> import org.junit.Test; >>>>> >>>>> public class BlueprintTestRouteTest extends CamelBlueprintTestSupport { >>>>> @EndpointInject( uri = "test:file://data?noop=true") >>>>> MockEndpoint targetEndpoint; >>>>> >>>>> @Override >>>>> protected String getBlueprintDescriptor() { >>>>> return "/OSGI-INF/blueprint/blueprint-test.xml"; >>>>> } >>>>> >>>>> @Override >>>>> @Before >>>>> public void setUp() throws Exception { >>>>> super.setUp(); >>>>> template.setDefaultEndpointUri( "direct://source >>>>> <direct://source>"); >>>>> } >>>>> >>>>> @Test >>>>> public void testRoute() throws Exception { >>>>> template.sendBody( "direct://source <direct://source>", "My >>>>> Value"); >>>>> >>>>> assertMockEndpointsSatisfied(); >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>>> On Mar 10, 2016, at 8:07 AM, Quinn Stevenson >>>>>> <qu...@pronoia-solutions.com <mailto:qu...@pronoia-solutions.com>> wrote: >>>>>> >>>>>> The route is defined in blueprint and I’m running the test using >>>>>> CamelBlueprintTestSupport - does that make a difference? >>>>>> >>>>>> >>>>>>> On Mar 10, 2016, at 8:04 AM, Claus Ibsen <claus.ib...@gmail.com >>>>>>> <mailto:claus.ib...@gmail.com>> wrote: >>>>>>> >>>>>>> Hi >>>>>>> >>>>>>> Ah that test component is never really used. So the idea is that you >>>>>>> have a file in that directory, that has the value "My Value" which the >>>>>>> test component will load and compare agains the incoming message. >>>>>>> >>>>>>> But yeah seems like the file -> string conversion somehow fails. You >>>>>>> just run this from straing junit ? No karaf or blueprint or osgi >>>>>>> container? >>>>>>> >>>>>>> On Thu, Mar 10, 2016 at 4:01 PM, Quinn Stevenson >>>>>>> <qu...@pronoia-solutions.com <mailto:qu...@pronoia-solutions.com>> >>>>>>> wrote: >>>>>>>> I’m trying to get the sample from the documentation for the Test >>>>>>>> Component working ( http://camel.apache.org/test.html >>>>>>>> <http://camel.apache.org/test.html> <http://camel.apache.org/test.html >>>>>>>> <http://camel.apache.org/test.html>> ), but I keep getting a type >>>>>>>> conversion error. >>>>>>>> >>>>>>>> Here’s the route definition: >>>>>>>> <route id="direct-to-test"> >>>>>>>> <from uri="direct://source <direct://source>"/> >>>>>>>> <to uri="test:file://data?noop=true" /> >>>>>>>> </route> >>>>>>>> >>>>>>>> Here’s the test method: >>>>>>>> @Test >>>>>>>> public void testRoute() throws Exception { >>>>>>>> template.sendBody( "direct://source <direct://source>", "My Value"); >>>>>>>> >>>>>>>> assertMockEndpointsSatisfied(); >>>>>>>> } >>>>>>>> >>>>>>>> Here’s the error: >>>>>>>> java.lang.AssertionError: test://file://data?noop=true >>>>>>>> <test://file//data?noop=true> There is no type conversion possible >>>>>>>> from java.lang.String to org.apache.camel.component.file.GenericFile >>>>>>>> >>>>>>>> I can see that Camel is finding the file with the test data because >>>>>>>> I’m getting a .camelLock file, but I can’t seem to figure out what I’m >>>>>>>> doing wrong >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Claus Ibsen >>>>>>> ----------------- >>>>>>> http://davsclaus.com <http://davsclaus.com/> @davsclaus >>>>>>> Camel in Action 2: https://www.manning.com/ibsen2 >>>>>>> <https://www.manning.com/ibsen2> >>>>>> >>>>> >>>> >>> >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2