package com.muleinaction.exception; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.text.StringStartsWith.startsWith; import static org.junit.Assert.assertThat; import org.junit.Test; import org.mule.api.MuleMessage; import org.mule.module.client.MuleClient; import org.mule.tck.junit4.FunctionalTestCase; import org.mule.transport.NullPayload; public class ExceptionStrategiesChoiceTestCase extends FunctionalTestCase { @Override protected String getConfigResources() { return "exception/exception-strategies-choice.xml"; } @Test public void testCatchStrategy() throws Exception { MuleClient muleClient = new MuleClient(muleContext); for (int i = 0; i < 4; i++) { MuleMessage result = muleClient.send("vm://calculateShippingCost.in", 0, null); assertThat(result.getExceptionPayload(), is(not(instanceOf(NullPayload.class)))); } MuleMessage result = muleClient.send("vm://calculateShippingCost.in", 0, null); assertThat(result.getExceptionPayload(), is(not(instanceOf(NullPayload.class)))); assertThat(result.getPayloadAsString(), startsWith("Error:")); } }