View Javadoc

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