camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mick Knutson <mknut...@baselogic.com>
Subject Re: Cannot Autowire consumerTemplate for client test
Date Mon, 03 Aug 2009 10:52:47 GMT
Here is the unit test:

    *@Produce(uri = "seda:foo")
    protected ProducerTemplate producer;

    @EndpointInject(uri = "mock:result")
    protected MockEndpoint mock;

    **@Test
    public void testReceiveGameStateUpdateMessage() throws Exception {
        log.info("testReceiveGameStateUpdateMessage");

        // we expect Hello World received in our mock endpoint
        mock.expectedBodiesReceived("Hello World");

        // we use the producer template to send a message to the seda:start
endpoint
        producer.sendBody("seda:start", "Hello World");
        producer.sendBodyAndHeader("<table/>", "foo", "bar");

        // we consume the body from seda:start
        //String body = consumer.receiveBody("seda:start", String.class);
        String body = consumer.receiveBody("seda:start", String.class);

        assertEquals("Hello World", body);
        log.info("**************************");
        log.info("... the result is: " + body);

        // and then we send the body again to seda:foo so it will be routed
to the mock
        // endpoint so our unit test can complete
        producer.sendBody("seda:foo", body);

        // assert mock received the body
        mock.assertIsSatisfied();
     }*

The assertEquals passes, but mock.assert fails.

I use

    *@EndpointInject(name = "result")
    private MockEndpoint mock;*

but got this error:

*java.lang.IllegalArgumentException: registry entry called result of type
org.apache.camel.Endpoint must be specified
*


Not sure why. I was trying to follow the example. But this seems to work
from the consumer standpoint, just not the Mock part.




---
Thank You…

Mick Knutson, President

BASE Logic, Inc.
Enterprise Architecture, Design, Mentoring & Agile Consulting
p. (866) BLiNC-411: (254-6241-1)
f. (415) 685-4233

Website: http://baselogic.com
Linked IN: http://linkedin.com/in/mickknutson
Vacation Rental: http://tahoe.baselogic.com
---



On Sun, Aug 2, 2009 at 8:57 PM, Willem Jiang <willem.jiang@gmail.com> wrote:

> Can you show me the unit test code?
> It should be easy to find a way to resolve this issue
>
>
> Willem
>
>
> Mick Knutson wrote:
>
>> That appeared to work for creating the consumerTemplate and allowing me to
>> Autowire it.
>>
>> But I am not able to get the mock to validate then. Maybe something simple
>> now:
>>
>> *Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 20.122
>> sec
>> <<< FAILURE!
>>
>> testReceiveGameStateUpdateMessage(com.wiredducks.service.test.TableServiceTest)
>> Time elapsed: 20.019 sec  <<< FAILURE!
>> java.lang.AssertionError: mock://result Received message count. Expected:
>> <1> but was: <0>
>> *
>>
>> This is my Mock:
>>    @EndpointInject(uri = "mock:result")
>>    protected MockEndpoint mock;
>>
>>
>> This is all I see from the logs:
>>
>> *5371 [main] INFO  org.apache.camel.component.mock.MockEndpoint  -
>> Asserting: Endpoint[mock://result] is satisfied
>> *
>>
>>
>> But this is good progress I think.
>>
>>
>> ---
>> Thank You…
>>
>> Mick Knutson, President
>>
>> BASE Logic, Inc.
>> Enterprise Architecture, Design, Mentoring & Agile Consulting
>> p. (866) BLiNC-411: (254-6241-1)
>> f. (415) 685-4233
>>
>> Website: http://baselogic.com
>> Linked IN: http://linkedin.com/in/mickknutson
>> Vacation Rental: http://tahoe.baselogic.com
>> ---
>>
>>
>>
>> On Sun, Aug 2, 2009 at 8:09 PM, Willem Jiang <willem.jiang@gmail.com>
>> wrote:
>>
>>  Hi,
>>>
>>> I just found this is a bug of Camel.  I'm working on the quick fix
>>> now[1].
>>> Here is a way that you can walk around this issue, by putting the
>>> consumerTemplate definition inside the camel context.
>>>
>>>
>>>    <camel:camelContext id="camel">
>>>        <camel:consumerTemplate id="consumer"/>
>>>    </camel:camelContext>
>>>    <camel:template id="producer"/>
>>>
>>>
>>> [1] https://issues.apache.org/activemq/browse/CAMEL-1870
>>>
>>>
>>> Willem
>>>
>>> Mick Knutson wrote:
>>>
>>>  I am using 2.0-M3
>>>>
>>>> Should be trying the trunk instead?
>>>>
>>>> ---
>>>> Thank You…
>>>>
>>>> Mick Knutson, President
>>>>
>>>> BASE Logic, Inc.
>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting
>>>> p. (866) BLiNC-411: (254-6241-1)
>>>> f. (415) 685-4233
>>>>
>>>> Website: http://baselogic.com
>>>> Linked IN: http://linkedin.com/in/mickknutson
>>>> Vacation Rental: http://tahoe.baselogic.com
>>>> ---
>>>>
>>>>
>>>>
>>>> On Sun, Aug 2, 2009 at 7:43 PM, Willem Jiang <willem.jiang@gmail.com>
>>>> wrote:
>>>>
>>>>  Which version of Camel are you using ?
>>>>
>>>>> I just checked current Camel 2.0 trunk code, the <camel:consumer>
tag
>>>>> should work. Can you try to use the recent released Camel 2.0 M3 ?
>>>>>
>>>>> Willem
>>>>>
>>>>>
>>>>> Mick Knutson wrote:
>>>>>
>>>>>  I am trying to follow:
>>>>>
>>>>>> http://camel.apache.org/polling-consumer.html
>>>>>>
>>>>>> Now in my camel-client.xml I defined:
>>>>>> *<beans xmlns="http://www.springframework.org/schema/beans"*
>>>>>> *       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"*
>>>>>> *       xmlns:camel="http://camel.apache.org/schema/spring"*
>>>>>> *       xsi:schemaLocation="*
>>>>>> *        http://www.springframework.org/schema/beans
>>>>>> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd*
>>>>>> *        http://camel.apache.org/schema/spring
>>>>>> http://camel.apache.org/schema/spring/camel-spring.xsd">*
>>>>>>
>>>>>>
>>>>>> *    <!-- START SNIPPET: e2 -->*
>>>>>> *    <camel:camelContext id="camel"/>*
>>>>>> *    <camel:template id="producer"/>*
>>>>>> *   <camel:consumerTemplate id="consumer"/> *
>>>>>>
>>>>>> But I keep getting:
>>>>>>
>>>>>> *The matching wildcard is strict, but no declaration can be found
for
>>>>>> element 'camel:consumerTemplate'.*
>>>>>>
>>>>>> Then I changed it to:
>>>>>> *<camel:consumer id="consumer"/> *
>>>>>> **
>>>>>> **
>>>>>> But still get*
>>>>>> *
>>>>>> *Caused by:
>>>>>>
>>>>>>
>>>>>> org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
>>>>>> Configuration problem: Cannot locate BeanDefinitionParser for element
>>>>>> [consumer]*
>>>>>> *Offending resource: class path resource [camel-client.xml]*
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ---
>>>>>> Thank You…
>>>>>>
>>>>>> Mick Knutson, President
>>>>>>
>>>>>> BASE Logic, Inc.
>>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting
>>>>>> p. (866) BLiNC-411: (254-6241-1)
>>>>>> f. (415) 685-4233
>>>>>>
>>>>>> Website: http://baselogic.com
>>>>>> Linked IN: http://linkedin.com/in/mickknutson
>>>>>> Vacation Rental: http://tahoe.baselogic.com
>>>>>> ---
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message