On Wed, Jul 15, 2009 at 12:15 PM, Charles Moulliard<cmoulli...@gmail.com> wrote:
> Thx.
>
>  It works with this :
>
>       try {
>            template1.sendBody(record1);
>        } catch (CamelExecutionException e) {
>

You actually need to do it like this

       try {
            template1.sendBody(record1);
            fail("Should have thrown an exception");
        } catch (CamelExecutionException e) {
            assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
       }

then you detect if an exception was NOT thrown
And you assert that the exception you forced thrown in your unit test
is wrapped in the exception.



>
>
> Charles Moulliard
> Senior Enterprise Architect
> Apache Camel Committer
>
> *****************************
> blog : http://cmoulliard.blogspot.com
>
>
> On Wed, Jul 15, 2009 at 11:31 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>
>> Some exceptions are wrapped in Camel so catch the wrapper and look for
>> your caused exception.
>>
>>
>> On Wed, Jul 15, 2009 at 11:25 AM, Charles Moulliard<cmoulli...@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > I try to create a test like this where I check if a specific exception
>> type
>> > is generated but it does not work.
>> >
>> > Is the code correct :
>> >
>> > @ContextConfiguration(locations =
>> >
>> "org.apache.camel.dataformat.bindy.csv.BindySimpleCsvMandatoryFieldsUnmarshallTest$ContextConfig",
>> > loader = JavaConfigContextLoader.class)
>> > public class BindySimpleCsvMandatoryFieldsUnmarshallTest extends
>> > AbstractJUnit4SpringContextTests {
>> >
>> >    String header = "order nr,client ref,first name, last name,instrument
>> > code,instrument name,order type, instrument type,
>> > quantity,currency,date\r\n";
>> >    String record1 = ",,,,,,,,,";
>> >    String record2 = ",,blabla,,,,,,";
>> >
>> >   �...@endpointinject(uri = "mock:result")
>> >    protected MockEndpoint resultEndpoint;
>> >
>> >   �...@produce(uri = "direct:start")
>> >    protected ProducerTemplate template;
>> >
>> >   �...@dirtiescontext
>> >   �...@test
>> >    public void testEmptyFields() throws Exception {
>> >        resultEndpoint.expectedMessageCount(0);
>> >
>> >        try {
>> >            template.sendBody(header + record1);
>> >        } catch (IllegalArgumentException e) {
>> >        // expected
>> >        }
>> >        resultEndpoint.assertIsSatisfied();
>> >    }
>> >
>> >   �...@configuration
>> >    public static class ContextConfig extends
>> SingleRouteCamelConfiguration
>> > {
>> >        BindyCsvDataFormat camelDataFormat = new
>> >
>> BindyCsvDataFormat("org.apache.camel.dataformat.bindy.model.simple.oneclassmandatory");
>> >
>> >       �...@override
>> >       �...@bean
>> >        public RouteBuilder route() {
>> >            return new RouteBuilder() {
>> >               �...@override
>> >                public void configure() {
>> >
>> > from("direct:start").unmarshal(camelDataFormat).to("mock:result");
>> >                }
>> >            };
>> >        }
>> >    }
>> >
>> > An IllegalArgumentException is generated in the log but the test
>> > testEmptyFields failed.
>> >
>> >
>> > Regards,
>> >
>> > Charles Moulliard
>> > Senior Enterprise Architect
>> > Apache Camel Committer
>> >
>> > *****************************
>> > blog : http://cmoulliard.blogspot.com
>> >
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to