View Javadoc

1   /*
2    * $Id: FlowNestingTestCase.java 22680 2011-08-16 11:36:15Z claude.mamo $
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.construct;
12  
13  import static org.junit.Assert.assertEquals;
14  import static org.junit.Assert.assertNotNull;
15  import static org.junit.Assert.assertNull;
16  
17  import org.mule.DefaultMuleMessage;
18  import org.mule.api.MuleException;
19  import org.mule.api.MuleMessage;
20  import org.mule.api.client.MuleClient;
21  import org.mule.tck.junit4.FunctionalTestCase;
22  import org.mule.tck.junit4.rule.DynamicPort;
23  import org.mule.tck.testmodels.fruit.Apple;
24  import org.mule.tck.testmodels.fruit.Orange;
25  
26  import org.junit.Rule;
27  import org.junit.Test;
28  
29  public class FlowNestingTestCase extends FunctionalTestCase
30  {
31      @Rule
32      public DynamicPort dynamicPort = new DynamicPort("port1");
33  
34      @Override
35      protected String getConfigResources()
36      {
37          return "org/mule/test/construct/flow-nesting-config.xml";
38      }
39  
40      @Test
41      public void testNestingFiltersAccepted() throws MuleException
42      {
43          MuleMessage request = new DefaultMuleMessage(new Orange(),  muleContext);
44          request.setOutboundProperty("Currency", "MyCurrency");
45          request.setOutboundProperty("AcquirerCountry", "MyCountry");
46          request.setOutboundProperty("Amount", "4999");
47                 
48          MuleClient client = muleContext.getClient();
49          
50          client.dispatch("vm://inFilter", request);
51          MuleMessage result = client.request("vm://outFilter", 5000);
52          assertNotNull(result);
53      }        
54      
55      @Test
56      public void testNestingFiltersRejected() throws MuleException
57      {
58          MuleMessage request = new DefaultMuleMessage(new Apple(),  muleContext);
59          request.setOutboundProperty("Currency", "MyCurrency");
60          request.setOutboundProperty("AcquirerCountry", "MyCountry");
61          request.setOutboundProperty("Amount", "4999");
62                 
63          MuleClient client = muleContext.getClient();
64          
65          client.dispatch("vm://inFilter", request);
66          MuleMessage result = client.request("vm://outFilter", 5000);
67          assertNull(result);
68      }
69      
70      @Test
71      public void testNestingChoiceAccepted() throws Exception
72      {
73          MuleMessage request = new DefaultMuleMessage(new Apple(),  muleContext);
74          request.setOutboundProperty("AcquirerCountry", "MyCountry");
75          request.setOutboundProperty("Amount", "4999");
76                 
77          MuleClient client = muleContext.getClient();
78          
79          client.dispatch("vm://inChoice", request);
80          MuleMessage result = client.request("vm://outChoice", 5000);
81          assertNotNull(result);
82          assertEquals("ABC", result.getPayloadAsString());                
83      }
84      
85      @Test
86      public void testNestingChoiceRejected() throws Exception
87      {
88          MuleMessage request = new DefaultMuleMessage(new Apple(),  muleContext);
89          request.setOutboundProperty("AcquirerCountry", "MyCountry");
90          request.setOutboundProperty("Amount", "5000");
91                 
92          MuleClient client = muleContext.getClient();
93          
94          client.dispatch("vm://inChoice", request);
95          MuleMessage result = client.request("vm://outChoice", 5000);
96          assertNotNull(result);
97          assertEquals("AB", result.getPayloadAsString());                
98      }  
99  }
100 
101