View Javadoc

1   /*
2    * $Id: ReplyToTestCase.java 20297 2010-11-22 18:49:18Z aperepel $
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;
12  
13  import org.mule.DefaultMuleMessage;
14  import org.mule.api.MuleMessage;
15  import org.mule.module.client.MuleClient;
16  import org.mule.tck.DynamicPortTestCase;
17  import org.mule.transport.NullPayload;
18  
19  /**
20   * see MULE-2721
21   */ 
22  public class ReplyToTestCase extends DynamicPortTestCase
23  {
24      static final long RECEIVE_DELAY = 3000;
25  
26      public ReplyToTestCase()
27      {
28          setDisposeManagerPerSuite(true);
29      }
30  
31      @Override
32      protected String getConfigResources()
33      {
34          return "org/mule/test/usecases/replyto.xml";
35      }
36  
37      public void testVm() throws Exception
38      {
39          MuleClient client = new MuleClient(muleContext);
40          
41          MuleMessage msg = new DefaultMuleMessage("testing", muleContext);
42          msg.setReplyTo("ReplyTo");
43          
44          // Send asynchronous request
45          client.dispatch("EchoVm", msg, null);
46  
47          // Wait for asynchronous response
48          MuleMessage result = client.request("ReplyTo", RECEIVE_DELAY);
49          assertNotNull("Result is null", result);
50          assertFalse("Result is null", result.getPayload() instanceof NullPayload);
51          assertEquals("testing", result.getPayload());
52  
53          // Make sure there are no more responses
54          result = client.request("ReplyTo", RECEIVE_DELAY);
55          assertNull("Extra message received at replyTo destination: " + result, result);        
56      }
57  
58      public void testAxis() throws Exception
59      {
60          MuleClient client = new MuleClient(muleContext);
61          
62          MuleMessage msg = new DefaultMuleMessage("testing", muleContext);
63          msg.setReplyTo("ReplyTo");
64          
65          // Send asynchronous request
66          client.dispatch("EchoAxisSend", msg, null);
67  
68          // Wait for asynchronous response
69          MuleMessage result = client.request("ReplyTo", RECEIVE_DELAY);
70          assertNotNull("Result is null", result);
71          assertFalse("Result is null", result.getPayload() instanceof NullPayload);
72          assertEquals("testing", result.getPayload());
73  
74          // Make sure there are no more responses
75          result = client.request("ReplyTo", RECEIVE_DELAY);
76          assertNull("Extra message received at replyTo destination: " + result, result);        
77      }
78  
79      public void testCxf() throws Exception
80      {
81          MuleClient client = new MuleClient(muleContext);
82          
83          MuleMessage msg = new DefaultMuleMessage("testing", muleContext);
84          msg.setReplyTo("ReplyTo");
85          
86          // Send asynchronous request
87          client.dispatch("EchoCxfSend", msg, null);
88  
89          // Wait for asynchronous response
90          MuleMessage result = client.request("ReplyTo", RECEIVE_DELAY);
91          assertNotNull("Result is null", result);
92          assertFalse("Result is null", result.getPayload() instanceof NullPayload);
93          assertEquals("testing", result.getPayload());
94  
95          // Make sure there are no more responses
96          result = client.request("ReplyTo", RECEIVE_DELAY);
97          assertNull("Extra message received at replyTo destination: " + result, result);        
98      }
99  
100     @Override
101     protected int getNumPortsToFind()
102     {
103         return 2;
104     }
105 }