1
2
3
4
5
6
7 package org.mule.test.integration.exceptions;
8
9 import org.mule.api.MuleException;
10 import org.mule.api.MuleMessage;
11 import org.mule.api.client.MuleClient;
12 import org.mule.api.expression.ExpressionEvaluator;
13 import org.mule.message.ExceptionMessage;
14 import org.mule.tck.junit4.FunctionalTestCase;
15
16 import org.junit.Test;
17
18 import static org.junit.Assert.assertNotNull;
19 import static org.junit.Assert.assertTrue;
20
21 public class ExceptionStrategyWithCustomExpressionEvaluatorTestCase extends FunctionalTestCase
22 {
23 @Override
24 protected String getConfigResources()
25 {
26 return "org/mule/test/integration/exceptions/exception-strategy-with-custom-expression-evaluator.xml";
27 }
28
29 @Test
30 public void testCustomExpressionEvaluatorExceptionStrategy() throws MuleException
31 {
32 MuleClient client = muleContext.getClient();
33 client.dispatch("vm://in", TEST_MESSAGE, null);
34 MuleMessage message = client.request("vm://out", RECEIVE_TIMEOUT);
35
36 assertNotNull("request returned no message", message);
37 assertTrue(message.getPayload() instanceof ExceptionMessage);
38 }
39
40 public static class FooExpressionEvaluator implements ExpressionEvaluator
41 {
42 public Object evaluate(String expression, MuleMessage message)
43 {
44 throw new UnsupportedOperationException("evaluate");
45 }
46
47 public void setName(String name)
48 {
49 throw new UnsupportedOperationException("setName");
50 }
51
52 public String getName()
53 {
54 return "Foo";
55 }
56 }
57 }