View Javadoc

1   /*
2    * $Id: CorrelationResequencerTestCase.java 19191 2010-08-25 21:05:23Z tcarlson $
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.routing;
12  
13  import org.mule.api.MuleEventContext;
14  import org.mule.module.client.MuleClient;
15  import org.mule.tck.FunctionalTestCase;
16  import org.mule.tck.functional.EventCallback;
17  import org.mule.tck.functional.FunctionalTestComponent;
18  
19  import java.util.Arrays;
20  
21  import edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch;
22  import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
23  
24  public class CorrelationResequencerTestCase extends FunctionalTestCase
25  {    
26      CountDownLatch receiveLatch = new CountDownLatch(6);
27      
28      @Override
29      protected void doSetUp() throws Exception
30      {
31          super.doSetUp();
32          
33          FunctionalTestComponent testComponent = getFunctionalTestComponent("test validator");
34          testComponent.setEventCallback(new EventCallback()
35          {
36              public void eventReceived(MuleEventContext context, Object component) throws Exception
37              {
38                  receiveLatch.countDown();                
39              }
40          });
41      }
42  
43      @Override
44      protected String getConfigResources()
45      {
46          return "correlation-resequencer-test.xml";
47      }
48  
49      public void testResequencer() throws Exception
50      {
51          MuleClient client = new MuleClient(muleContext);
52          client.dispatch("vm://splitter", Arrays.asList("a", "b", "c", "d", "e", "f"), null);
53  
54          FunctionalTestComponent resequencer = getFunctionalTestComponent("test validator");
55  
56          assertTrue(receiveLatch.await(30, TimeUnit.SECONDS));
57  
58          assertEquals("Wrong number of messages received.", 6, resequencer.getReceivedMessagesCount());
59          assertEquals("Sequence wasn't reordered.", "a", resequencer.getReceivedMessage(1));
60          assertEquals("Sequence wasn't reordered.", "b", resequencer.getReceivedMessage(2));
61          assertEquals("Sequence wasn't reordered.", "c", resequencer.getReceivedMessage(3));
62          assertEquals("Sequence wasn't reordered.", "d", resequencer.getReceivedMessage(4));
63          assertEquals("Sequence wasn't reordered.", "e", resequencer.getReceivedMessage(5));
64          assertEquals("Sequence wasn't reordered.", "f", resequencer.getReceivedMessage(6));
65      }
66  }