1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.exceptions;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.message.ExceptionMessage;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.FunctionalTestCase;
17
18 public class ExceptionListenerTestCase extends FunctionalTestCase
19 {
20
21 protected String getConfigResources()
22 {
23 return "org/mule/test/integration/exceptions/exception-listener-config.xml";
24 }
25
26 public void testExceptionStrategyFromComponent() throws Exception
27 {
28 MuleClient client = new MuleClient();
29
30 MuleMessage message = client.request("vm://error.queue", 2000);
31 assertNull(message);
32
33 client.send("vm://component.in", "test", null);
34
35 message = client.request("vm://component.out", 2000);
36 assertNull(message);
37
38 message = client.request("vm://error.queue", 2000);
39 assertNotNull(message);
40 Object payload = message.getPayload();
41 assertTrue(payload instanceof ExceptionMessage);
42 }
43
44 public void testExceptionStrategyForTransformerException() throws Exception
45 {
46 MuleClient client = new MuleClient();
47
48 MuleMessage message = client.request("vm://error.queue", 2000);
49 assertNull(message);
50
51 client.send("vm://component.in", "test", null);
52
53 message = client.request("vm://component.out", 2000);
54 assertNull(message);
55
56 message = client.request("vm://error.queue", 2000);
57 assertNotNull(message);
58 Object payload = message.getPayload();
59 assertTrue(payload instanceof ExceptionMessage);
60 }
61
62 public void testExceptionStrategyForTransformerExceptionAsync() throws Exception
63 {
64 MuleClient client = new MuleClient();
65
66 MuleMessage message = client.request("vm://error.queue", 2000);
67 assertNull(message);
68
69 client.dispatch("vm://component.in", "test", null);
70
71 message = client.request("vm://service.out", 2000);
72 assertNull(message);
73
74 message = client.request("vm://error.queue", 2000);
75 assertNotNull(message);
76 Object payload = message.getPayload();
77 assertTrue(payload instanceof ExceptionMessage);
78 }
79 }