/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * *************************************************************************************** */ package com.espertech.esper.collection; import com.espertech.esper.client.EventBean; import com.espertech.esper.client.scopetest.EPAssertionUtil; import com.espertech.esper.supportunit.event.EventFactoryHelper; import junit.framework.TestCase; import java.util.List; import java.util.Map; public class TestIterablesArrayIterator extends TestCase { private Map<String, EventBean> events; public void setUp() { events = EventFactoryHelper.makeEventMap(new String[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "z"}); } public void testIterator() { Iterable<EventBean>[][] iterables = new Iterable[1][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{"a", "b", "c"})); checkResults(iterables, EventFactoryHelper.makeArray(events, new String[]{"a", "b", "c"})); iterables = new Iterable[3][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{"a"})); iterables[1] = makeArray(EventFactoryHelper.makeList(events, new String[]{"b"})); iterables[2] = makeArray(EventFactoryHelper.makeList(events, new String[]{"c"})); checkResults(iterables, EventFactoryHelper.makeArray(events, new String[]{"a", "b", "c"})); iterables = new Iterable[2][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{"a", "b"})); iterables[1] = makeArray(EventFactoryHelper.makeList(events, new String[]{"c"})); checkResults(iterables, EventFactoryHelper.makeArray(events, new String[]{"a", "b", "c"})); iterables = new Iterable[5][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[1] = makeArray(EventFactoryHelper.makeList(events, new String[]{"a", "b"})); iterables[2] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[3] = makeArray(EventFactoryHelper.makeList(events, new String[]{"c"})); iterables[4] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); checkResults(iterables, EventFactoryHelper.makeArray(events, new String[]{"a", "b", "c"})); iterables = new Iterable[1][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); checkResults(iterables, null); iterables = new Iterable[3][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[1] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[2] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); checkResults(iterables, null); iterables = new Iterable[4][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[1] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[2] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[3] = makeArray(EventFactoryHelper.makeList(events, new String[]{"d"})); checkResults(iterables, EventFactoryHelper.makeArray(events, new String[]{"d"})); iterables = new Iterable[4][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{"d"})); iterables[1] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[2] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[3] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); checkResults(iterables, EventFactoryHelper.makeArray(events, new String[]{"d"})); iterables = new Iterable[8][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{"a", "b", "c"})); iterables[1] = makeArray(EventFactoryHelper.makeList(events, new String[]{"d"})); iterables[2] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[3] = makeArray(EventFactoryHelper.makeList(events, new String[]{"e", "f"})); iterables[4] = makeArray(EventFactoryHelper.makeList(events, new String[]{"g"})); iterables[5] = makeArray(EventFactoryHelper.makeList(events, new String[]{})); iterables[6] = makeArray(EventFactoryHelper.makeList(events, new String[]{"h", "i"})); iterables[7] = makeArray(EventFactoryHelper.makeList(events, new String[]{"z"})); checkResults(iterables, EventFactoryHelper.makeArray(events, new String[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "z"})); iterables = new Iterable[0][]; checkResults(iterables, null); } public void testRemove() { Iterable<EventBean>[][] iterables = new Iterable[1][]; iterables[0] = makeArray(EventFactoryHelper.makeList(events, new String[]{"a", "b", "c"})); IterablesArrayIterator iterator = new IterablesArrayIterator(iterables); try { iterator.remove(); assertTrue(false); } catch (UnsupportedOperationException ex) { // Expected } } private void checkResults(Iterable<EventBean>[][] iterables, EventBean[] expectedValues) { IterablesArrayIterator iterator = new IterablesArrayIterator(iterables); EPAssertionUtil.assertEqualsExactOrder(expectedValues, iterator); } private Iterable<EventBean>[] makeArray(List<EventBean> eventBeans) { return (Iterable<EventBean>[]) new Iterable[]{eventBeans}; } }