I am using the REST DSL in a Camel SCR unit test. I have a route (being tested) 
that will initiate a http request at this URL:

        @Test
        public void testRoutes() throws Exception {
        context.addRoutes(new RouteBuilder() {
                @Override
                public void configure() throws Exception {
                        restConfiguration().component("restlet").port(9000);
                        rest("/asset")
                                .put("/{addr}/pong") 
.param().name("id").type(RestParamType.query).endParam()
                                .to("log:steve?showAll=true")
                                .to("mock:result");
                }
        });

        MockEndpoint resultEndpoint = context.getEndpoint("mock:result", 
MockEndpoint.class);
        resultEndpoint.expectedMessageCount(1);
        resultEndpoint.message(0).header("addr").isEqualTo("my_test_value");
        resultEndpoint.message(0).header("id").isEqualTo("abcd1234");


At run time, the request does arrive as a PUT to 
http://127.0.0.1:9000/asset/my_test_value/pong?id=abcd1234

However, I am only getting the "addr" path parameter in the header. The query 
param "id" is missing.
Am I doing something wrong on the definition? I pieced together the way to do 
it from disparate tidbits on the net.

Thanks,
-Steve

Reply via email to