View Javadoc

1   /*
2    * $Id: AxisClientWithComplexTypesTestCase.java 19856 2010-10-06 21:36:13Z dzapata $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.test.usecases.axis;
12  
13  import org.mule.api.MuleMessage;
14  import org.mule.module.client.MuleClient;
15  import org.mule.tck.DynamicPortTestCase;
16  import org.mule.tck.FunctionalTestCase;
17  import org.mule.transport.soap.axis.AxisConnector;
18  
19  import java.util.HashMap;
20  import java.util.Map;
21  
22  /**
23   * TODO document
24   */
25  public class AxisClientWithComplexTypesTestCase extends DynamicPortTestCase
26  {
27      
28      private Trade trade = null;
29      private String uri = null;
30  
31      @Override
32      protected String getConfigResources()
33      {
34          return "org/mule/test/usecases/routing/axis/axis-client-test.xml";
35      }
36  
37      @Override
38      protected void doSetUp() throws Exception
39      {
40          trade = new Trade();
41          trade.setAccountID(11);
42          trade.setCusip("33");
43          trade.setCurrency(22);
44          trade.setTradeID(22);
45          trade.setTransaction(11);
46          uri = "axis:http://localhost:" + getPorts().get(0) + "/services/BackOfficeImplBindingImplUMO?method=submitTrade";
47      }
48  
49      public void testSendComplexDOCLIT() throws Exception
50      {
51          MuleClient client = new MuleClient(muleContext);
52          Map props = new HashMap();
53          props.put(AxisConnector.STYLE, "Document");
54          props.put(AxisConnector.USE, "Literal");
55  
56          SubmitTrade submittrade = new SubmitTrade();
57          submittrade.setArg0(trade);
58  
59          // We need to name the parameters weh using Doc/Lit
60          // SoapMethod method = new SoapMethod(new QName("submitTrade"),
61          // SubmitTradeResponse.class);
62          // method.addNamedParameter(new NamedParameter(new QName("submitTrade"),
63          // NamedParameter.createQName("Object"), ParameterMode.IN));
64          // props.put(MuleProperties.MULE_SOAP_METHOD, method);
65          MuleMessage result = client.send(uri, submittrade, props);
66          assertNotNull(result);
67          SubmitTradeResponse response = (SubmitTradeResponse)result.getPayload();
68          assertEquals("RECEIVED", response.get_return().getStatus());
69  
70      }
71  
72      public void testSendComplexRPCENC() throws Exception
73      {
74          MuleClient client = new MuleClient(muleContext);
75  
76          MuleMessage result = client.send(uri, trade, null);
77          assertNotNull(result);
78          TradeStatus status = (TradeStatus)result.getPayload();
79          assertEquals("RECEIVED", status.getStatus());
80      }
81  
82      @Override
83      protected int getNumPortsToFind()
84      {
85          return 1;
86      }
87  
88  }