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