1
2
3
4
5
6
7
8
9
10
11 package org.mule.test.integration.client;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.api.endpoint.InboundEndpoint;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.junit4.FunctionalTestCase;
17 import org.mule.tck.junit4.rule.DynamicPort;
18 import org.mule.tck.testmodels.services.Person;
19
20 import org.junit.Rule;
21 import org.junit.Test;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertTrue;
26
27 public class MuleClientAxisTestCase extends FunctionalTestCase
28 {
29
30 @Rule
31 public DynamicPort dynamicPort1 = new DynamicPort("port1");
32
33 @Rule
34 public DynamicPort dynamicPort2 = new DynamicPort("port2");
35
36 @Rule
37 public DynamicPort dynamicPort3 = new DynamicPort("port3");
38
39 @Override
40 protected String getConfigResources()
41 {
42 return "org/mule/test/integration/client/axis-client-test-mule-config.xml";
43 }
44
45
46
47
48
49
50
51
52
53 private String getMuleAddress(MuleClient muleClient, String inboundEndpointName)
54 {
55 return ((InboundEndpoint) muleClient.getMuleContext().getRegistry().lookupObject(inboundEndpointName)).getProtocol()
56 + ":"
57 + ((InboundEndpoint) muleClient.getMuleContext().getRegistry().lookupObject(
58 inboundEndpointName)).getAddress();
59 }
60
61 @Test
62 public void testRequestResponse() throws Throwable
63 {
64 MuleClient client = new MuleClient(muleContext);
65 MuleMessage result = client.send(getMuleAddress(client, "inMyComponent2") + "/mycomponent2?method=echo",
66 "test", null);
67 assertNotNull(result);
68 assertEquals("test", result.getPayloadAsString());
69 }
70
71 @Test
72 public void testRequestResponseComplex() throws Exception
73 {
74 MuleClient client = new MuleClient(muleContext);
75
76 MuleMessage result = client.send(
77 getMuleAddress(client, "inMyComponent3") + "/mycomponent3?method=getPerson", "Fred", null);
78 assertNotNull(result);
79 logger.debug(result.getPayload());
80 assertTrue(result.getPayload() instanceof Person);
81 assertEquals("Fred", ((Person)result.getPayload()).getFirstName());
82 assertEquals("Flintstone", ((Person)result.getPayload()).getLastName());
83 }
84
85 @Test
86 public void testRequestResponseComplex2() throws Exception
87 {
88 MuleClient client = new MuleClient(muleContext);
89
90 String[] args = new String[]{"Betty", "Rubble"};
91 MuleMessage result = client.send(
92 getMuleAddress(client, "inMyComponent3") + "/mycomponent3?method=addPerson", args, null);
93 assertNotNull(result);
94 assertTrue(result.getPayload() instanceof Person);
95 assertEquals("Betty", ((Person)result.getPayload()).getFirstName());
96 assertEquals("Rubble", ((Person) result.getPayload()).getLastName());
97
98
99 result = client.send(getMuleAddress(client, "inMyComponent3") + "/mycomponent3?method=getPerson",
100 "Betty", null);
101 assertNotNull(result);
102 assertTrue(result.getPayload() instanceof Person);
103 assertEquals("Betty", ((Person)result.getPayload()).getFirstName());
104 assertEquals("Rubble", ((Person)result.getPayload()).getLastName());
105
106 }
107
108 @Test
109 public void testRequestWithComplexArg() throws Exception
110 {
111 MuleClient client = new MuleClient(muleContext);
112 Person person = new Person("Joe", "Blow");
113 String uri = getMuleAddress(client, "inMyComponent3") + "/mycomponent3?method=addPerson";
114 client.send(uri, person, null);
115 uri = getMuleAddress(client, "inMyComponent3") + "/mycomponent3?method=getPerson";
116 MuleMessage result = client.send(uri, "Joe", null);
117 assertNotNull(result);
118 assertTrue(result.getPayload() instanceof Person);
119 assertEquals("Joe", ((Person)result.getPayload()).getFirstName());
120 assertEquals("Blow", ((Person)result.getPayload()).getLastName());
121 }
122
123 }