1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.routing.outbound;
12
13 import static org.junit.Assert.assertEquals;
14 import static org.junit.Assert.assertNotNull;
15 import static org.junit.Assert.assertNull;
16
17 import org.mule.DefaultMuleMessage;
18 import org.mule.api.MuleMessage;
19 import org.mule.module.client.MuleClient;
20 import org.mule.tck.AbstractServiceAndFlowTestCase;
21
22 import java.util.Arrays;
23 import java.util.Collection;
24
25 import org.junit.Test;
26 import org.junit.runners.Parameterized.Parameters;
27
28 public class ChainingRouterNullsHandlingTestCase extends AbstractServiceAndFlowTestCase
29 {
30 @Parameters
31 public static Collection<Object[]> parameters()
32 {
33 return Arrays.asList(new Object[][]{{ConfigVariant.SERVICE,
34 "org/mule/test/integration/routing/outbound/chaining-router-null-handling-service.xml"}});
35 }
36
37 public ChainingRouterNullsHandlingTestCase(ConfigVariant variant, String configResources)
38 {
39 super(variant, configResources);
40 }
41
42 @Test
43 public void testNoComponentFails() throws Exception
44 {
45 MuleClient muleClient = new MuleClient(muleContext);
46 MuleMessage message = new DefaultMuleMessage("thePayload", muleContext);
47 MuleMessage result = muleClient.send("vm://incomingPass", message);
48 assertNull("Shouldn't have any exceptions", result.getExceptionPayload());
49 assertEquals("thePayload Received component1 Received component2Pass", result.getPayloadAsString());
50 }
51
52 @Test
53 public void testLastComponentFails() throws Exception
54 {
55 MuleMessage message = new DefaultMuleMessage("thePayload", muleContext);
56
57 MuleMessage result = muleContext.getClient().send("vm://incomingLastFail", message);
58 assertNotNull(result);
59 assertNotNull(result.getExceptionPayload());
60 assertEquals(Component2Exception.class, result.getExceptionPayload().getRootException().getClass());
61 }
62
63
64 @Test
65 public void testFirstComponentFails() throws Exception
66 {
67 MuleMessage message = new DefaultMuleMessage("thePayload", muleContext);
68 MuleMessage result = muleContext.getClient().send("vm://incomingFirstFail", message);
69 assertNotNull(result);
70 assertNotNull(result.getExceptionPayload());
71 assertEquals(Component1Exception.class, result.getExceptionPayload().getRootException().getClass());
72 }
73 }