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 >