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