I can't test the exception type :

This test fails

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

        }

but this one no :

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



Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer

*****************************
blog : http://cmoulliard.blogspot.com


On Wed, Jul 15, 2009 at 12:20 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> 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