1
2
3
4
5
6
7 package org.mule;
8
9 import static org.junit.Assert.assertEquals;
10 import static org.junit.Assert.assertSame;
11 import static org.junit.Assert.assertTrue;
12
13 import org.mule.api.MuleContext;
14 import org.mule.api.MuleMessage;
15 import org.mule.api.MuleMessageCollection;
16 import org.mule.tck.junit4.AbstractMuleTestCase;
17 import org.mule.tck.testmodels.fruit.Apple;
18 import org.mule.tck.testmodels.fruit.Banana;
19 import org.mule.tck.testmodels.fruit.Fruit;
20 import org.mule.tck.testmodels.fruit.GrapeFruit;
21 import org.mule.tck.testmodels.fruit.Orange;
22
23 import java.util.List;
24
25 import org.junit.Test;
26 import org.mockito.Mockito;
27
28 public class DefaultMessageCollectionTestCase extends AbstractMuleTestCase
29 {
30
31 Apple apple = new Apple();
32 Banana banana = new Banana();
33 GrapeFruit grapeFruit = new GrapeFruit();
34 Orange orange = new Orange();
35
36 MuleContext muleContext = Mockito.mock(MuleContext.class);
37
38 @Test
39 public void addMuleMessage()
40 {
41 MuleMessage message1 = new DefaultMuleMessage(apple, muleContext);
42 MuleMessage message2 = new DefaultMuleMessage(banana, muleContext);
43 MuleMessage message3 = new DefaultMuleMessage(orange, muleContext);
44
45 DefaultMessageCollection messageCollection = new DefaultMessageCollection(muleContext);
46 messageCollection.addMessage(message1);
47 messageCollection.addMessage(message2);
48 messageCollection.addMessage(message3);
49
50 assertEquals(3, messageCollection.getMessageList().size());
51 assertSame(message1, messageCollection.getMessage(0));
52 assertSame(message2, messageCollection.getMessage(1));
53 assertSame(message3, messageCollection.getMessage(2));
54
55 assertEquals(3, messageCollection.getPayloadList().size());
56 assertTrue(messageCollection.getPayload() instanceof List<?>);
57 assertSame(apple, ((List) messageCollection.getPayload()).get(0));
58 assertSame(banana, ((List) messageCollection.getPayload()).get(1));
59 assertSame(orange, ((List) messageCollection.getPayload()).get(2));
60 }
61
62 @Test
63 public void addMuleMessageCollection()
64 {
65 MuleMessageCollection messageCollection1 = Mockito.mock(MuleMessageCollection.class);
66 MuleMessageCollection messageCollection2 = Mockito.mock(MuleMessageCollection.class);
67 Mockito.when(messageCollection1.getPayload()).thenReturn(new Fruit[]{apple, banana});
68 Mockito.when(messageCollection2.getPayload()).thenReturn(new Fruit[]{grapeFruit, orange});
69
70 DefaultMessageCollection messageCollectionUnderTest = new DefaultMessageCollection(muleContext);
71 messageCollectionUnderTest.addMessage(messageCollection1);
72 messageCollectionUnderTest.addMessage(messageCollection2);
73
74 assertEquals(2, messageCollectionUnderTest.getMessageList().size());
75 assertSame(messageCollection1, messageCollectionUnderTest.getMessage(0));
76 assertSame(messageCollection2, messageCollectionUnderTest.getMessage(1));
77
78 assertEquals(2, messageCollectionUnderTest.getPayloadList().size());
79 assertTrue(messageCollectionUnderTest.getPayload() instanceof List<?>);
80 assertSame(apple, ((Fruit[]) ((List) messageCollectionUnderTest.getPayload()).get(0))[0]);
81 assertSame(banana, ((Fruit[]) ((List) messageCollectionUnderTest.getPayload()).get(0))[1]);
82 assertSame(grapeFruit, ((Fruit[]) ((List) messageCollectionUnderTest.getPayload()).get(1))[0]);
83 assertSame(orange, ((Fruit[]) ((List) messageCollectionUnderTest.getPayload()).get(1))[1]);
84 }
85
86 @Test
87 public void addMuleMessageAndMuleMessageCollection()
88 {
89 MuleMessage message3 = new DefaultMuleMessage(grapeFruit, muleContext);
90 MuleMessage message4 = new DefaultMuleMessage(orange, muleContext);
91
92 MuleMessageCollection messageCollection1 = Mockito.mock(MuleMessageCollection.class);
93 Mockito.when(messageCollection1.getPayload()).thenReturn(new Fruit[]{apple, banana});
94
95 DefaultMessageCollection messageCollectionUnderTest = new DefaultMessageCollection(muleContext);
96 messageCollectionUnderTest.addMessage(messageCollection1);
97 messageCollectionUnderTest.addMessage(message3);
98 messageCollectionUnderTest.addMessage(message4);
99
100 assertEquals(3, messageCollectionUnderTest.getMessageList().size());
101 assertSame(messageCollection1, messageCollectionUnderTest.getMessage(0));
102 assertSame(message3, messageCollectionUnderTest.getMessage(1));
103 assertSame(message4, messageCollectionUnderTest.getMessage(2));
104
105 assertEquals(3, messageCollectionUnderTest.getPayloadList().size());
106 assertTrue(messageCollectionUnderTest.getPayload() instanceof List<?>);
107 assertSame(apple, ((Fruit[]) ((List) messageCollectionUnderTest.getPayload()).get(0))[0]);
108 assertSame(banana, ((Fruit[]) ((List) messageCollectionUnderTest.getPayload()).get(0))[1]);
109 assertSame(grapeFruit, ((List) messageCollectionUnderTest.getPayload()).get(1));
110 assertSame(orange, ((List) messageCollectionUnderTest.getPayload()).get(2));
111 }
112
113 }