1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.vm.functional.transactions;
12
13 import static org.junit.Assert.assertEquals;
14 import static org.junit.Assert.assertNull;
15 import static org.junit.Assert.assertTrue;
16
17 import java.util.Arrays;
18 import java.util.Collection;
19
20 import org.apache.commons.logging.Log;
21 import org.apache.commons.logging.LogFactory;
22 import org.junit.Test;
23 import org.junit.runners.Parameterized.Parameters;
24 import org.mule.api.DefaultMuleException;
25 import org.mule.api.MuleEvent;
26 import org.mule.api.MuleException;
27 import org.mule.api.MuleMessage;
28 import org.mule.api.processor.MessageProcessor;
29 import org.mule.module.client.MuleClient;
30 import org.mule.tck.AbstractServiceAndFlowTestCase;
31 import org.mule.transport.NullPayload;
32
33
34
35
36
37
38 public class MessageFilterTestCase extends AbstractServiceAndFlowTestCase
39 {
40
41 protected static final Log logger = LogFactory.getLog(MessageFilterTestCase.class);
42
43 private static String rejectMesage;
44
45 public MessageFilterTestCase(ConfigVariant variant, String configResources)
46 {
47 super(variant, configResources);
48 }
49
50 @Parameters
51 public static Collection<Object[]> parameters()
52 {
53 return Arrays.asList(new Object[][]{
54 {ConfigVariant.SERVICE, "org/mule/test/config/message-filter-config-service.xml"},
55 {ConfigVariant.FLOW, "org/mule/test/config/message-filter-config-flow.xml"}});
56 }
57
58
59 @Test
60 public void testConfiguration() throws Exception
61 {
62 MuleClient client = new MuleClient(muleContext);
63
64 MuleMessage response = client.send("vm://order.validation", "OK", null);
65 assertTrue(response.getPayload() instanceof NullPayload);
66 assertEquals("OK(rejected!-1)", rejectMesage);
67
68 response = client.send("vm://order.validation", "OK-ABC", null);
69 assertTrue(response.getPayload() instanceof NullPayload);
70 assertEquals("OK-ABC(rejected!-2)", rejectMesage);
71
72 response = client.send("vm://order.validation", "OK-DEF", null);
73 assertTrue(response.getPayload() instanceof NullPayload);
74 assertEquals("OK-DEF(rejected!-1)", rejectMesage);
75 rejectMesage = null;
76
77 response = client.send("vm://order.validation", "OK-ABC-DEF", null);
78 assertEquals("OK-ABC-DEF(success)", response.getPayloadAsString());
79 assertNull(rejectMesage);
80 }
81
82 public static class Reject1 implements MessageProcessor
83 {
84 public void setName(String name)
85 {
86 }
87
88 public MuleEvent process(MuleEvent event) throws MuleException
89 {
90 try
91 {
92 MuleMessage msg = event.getMessage();
93 String payload = msg.getPayloadAsString();
94 rejectMesage = payload + "(rejected!-1)";
95 return null;
96 }
97 catch (Exception e)
98 {
99 throw new DefaultMuleException(e);
100 }
101 }
102 }
103
104 public static class Reject2 implements MessageProcessor
105 {
106 public void setName(String name)
107 {
108 }
109
110 public MuleEvent process(MuleEvent event) throws MuleException
111 {
112 try
113 {
114 MuleMessage msg = event.getMessage();
115 String payload = msg.getPayloadAsString();
116 rejectMesage = payload + "(rejected!-2)";
117 return null;
118 }
119 catch (Exception e)
120 {
121 throw new DefaultMuleException(e);
122 }
123 }
124 }
125 }