View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.routing;
8   
9   import org.mule.DefaultMessageCollection;
10  import org.mule.DefaultMuleEvent;
11  import org.mule.DefaultMuleMessage;
12  import org.mule.api.MuleEvent;
13  import org.mule.api.MuleMessageCollection;
14  import org.mule.tck.junit4.AbstractMuleContextTestCase;
15  import org.mule.transformer.simple.CombineCollectionsTransformer;
16  
17  import java.util.ArrayList;
18  import java.util.Arrays;
19  import java.util.List;
20  
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.assertTrue;
26  
27  public class CombineCollectionsTransformerTestCase extends AbstractMuleContextTestCase
28  {
29      private CombineCollectionsTransformer merger;
30  
31      @Override
32      protected void doSetUp() throws Exception
33      {
34          super.doSetUp();
35          
36          merger = new CombineCollectionsTransformer();
37      }
38  
39      @Test
40      public void testMuleMessageCollectionMerge() throws Exception
41      {   
42          MuleEvent event = getTestEvent("hello");
43          
44          DefaultMessageCollection collection = new DefaultMessageCollection(muleContext);
45          collection.addMessage(new DefaultMuleMessage(Arrays.asList("1", "2", "3"), muleContext));
46          collection.addMessage(new DefaultMuleMessage("4", muleContext));
47          collection.addMessage(new DefaultMuleMessage(Arrays.asList("5", "6", "7"), muleContext));
48          
49          event = new DefaultMuleEvent(collection, event);
50          
51          MuleEvent response = merger.process(event);
52          
53          assertFalse(response.getMessage() instanceof MuleMessageCollection);
54          
55          assertTrue(response.getMessage().getPayload() instanceof List);
56          assertEquals(7, ((List)response.getMessage().getPayload()).size());
57      }
58      
59      @Test
60      public void testMuleMessageMerge() throws Exception
61      {
62          MuleEvent event = getTestEvent("hello");
63          
64          ArrayList<Object> payload = new ArrayList<Object>();
65          payload.add(Arrays.asList("1", "2", "3"));
66          payload.add("4");
67          payload.add(Arrays.asList("5", "6", "7"));
68          event.getMessage().setPayload(payload);
69          
70          MuleEvent response = merger.process(event);
71          
72          assertFalse(response.getMessage() instanceof MuleMessageCollection);
73          
74          assertTrue(response.getMessage().getPayload() instanceof List);
75          assertEquals(7, ((List)response.getMessage().getPayload()).size());
76      }
77  }