/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.routing.outbound;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import org.mule.tck.size.SmallTest;
import java.util.ArrayList;
import java.util.Collection;
import org.junit.Test;
@SmallTest
public class PartitionedMessageSequenceTestCase {
@Test
public void wrapCollectionMessageSequence() {
Collection<String> group1 = new ArrayList<>();
group1.add("one");
group1.add("two");
group1.add("three");
group1.add("four");
Collection<String> group2 = new ArrayList<>();
group2.add("five");
group2.add("six");
group2.add("seven");
Collection<String> base = new ArrayList<>();
base.addAll(group1);
base.addAll(group2);
CollectionMessageSequence<String> cms = new CollectionMessageSequence<>(base);
int groupSize = group1.size();
PartitionedMessageSequence<String> pms = new PartitionedMessageSequence<>(cms, groupSize);
assertThat(pms.size(), is(2));
Collection<String> batchItem = pms.next();
assertEquals(groupSize, batchItem.size());
assertTrue(batchItem.containsAll(group1));
batchItem = pms.next();
assertEquals(group2.size(), batchItem.size());
assertTrue(batchItem.containsAll(group2));
assertFalse(pms.hasNext());
}
}