1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.vm;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.module.client.MuleClient;
15 import org.mule.tck.FunctionalTestCase;
16
17 import org.junit.Test;
18
19 public class VMFunctionalTestCase extends FunctionalTestCase
20 {
21 public VMFunctionalTestCase()
22 {
23 setDisposeManagerPerSuite(true);
24 }
25
26 protected String getConfigResources()
27 {
28 return "vm/vm-functional-test.xml";
29 }
30
31 @Test
32 public void testSingleMessage() throws Exception
33 {
34 MuleClient client = new MuleClient(muleContext);
35 client.dispatch("vm://in", "Marco", null);
36 MuleMessage response = client.request("vm://out", RECEIVE_TIMEOUT);
37 assertNotNull("Response is null", response);
38 assertEquals("Polo", response.getPayload());
39 }
40
41 @Test
42 public void testRequest() throws Exception
43 {
44 MuleClient client = new MuleClient(muleContext);
45 client.dispatch("vm://in", "Marco", null);
46 MuleMessage response = client.request("vm://out", RECEIVE_TIMEOUT);
47 assertNotNull("Response is null", response);
48 assertEquals("Polo", response.getPayload());
49 }
50
51 @Test
52 public void testMultipleMessages() throws Exception
53 {
54 MuleClient client = new MuleClient(muleContext);
55 client.dispatch("vm://in", "Marco", null);
56 client.dispatch("vm://in", "Marco", null);
57 client.dispatch("vm://in", "Marco", null);
58 MuleMessage response;
59 for (int i = 0; i < 3; ++i)
60 {
61 response = client.request("vm://out", RECEIVE_TIMEOUT);
62 assertNotNull("Response is null", response);
63 assertEquals("Polo", response.getPayload());
64 }
65
66 MuleMessage secondMessage = client.request("vm://out", RECEIVE_TIMEOUT);
67 assertNull(secondMessage);
68 }
69
70 @Test
71 public void testOneWayChain() throws Exception
72 {
73 MuleClient client = new MuleClient(muleContext);
74 client.dispatch("vm://in1", "Marco", null);
75 MuleMessage response = client.request("vm://out1", RECEIVE_TIMEOUT);
76 assertNotNull("Response is null", response);
77 assertEquals("Polo", response.getPayload());
78 }
79
80 @Test
81 public void testRequestResponseChain() throws Exception
82 {
83 MuleClient client = new MuleClient(muleContext);
84 MuleMessage response = client.send("vm://in2", "Marco", null);
85 assertNotNull("Response is null", response);
86 assertEquals("Polo", response.getPayload());
87 }
88
89 @Test
90 public void testNoMessageDuplication() throws Exception
91 {
92 MuleClient client = new MuleClient(muleContext);
93 client.dispatch("vm://in", "Marco", null);
94 MuleMessage response = client.request("vm://out", RECEIVE_TIMEOUT);
95 assertNotNull("Response is null", response);
96 assertEquals("Polo", response.getPayload());
97 MuleMessage secondMessage = client.request("vm://out", RECEIVE_TIMEOUT);
98 assertNull(secondMessage);
99 }
100 }