2 * Copyright 2000-2013 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.jetbrains.python.toolbox;
18 import junit.framework.TestCase;
20 import java.util.ArrayList;
21 import java.util.Arrays;
22 import java.util.List;
25 * Tests all iterators and iterables.
27 * Date: Nov 20, 2009 3:42:51 AM
29 public class IteratorsTest extends TestCase {
31 public IteratorsTest() {
35 public void testChainIterableByLists() {
36 List<String> list1 = Arrays.asList("foo", "bar", "baz");
37 List<String> list2 = Arrays.asList("ichi", "ni", "san");
38 List<String> list3 = Arrays.asList("a", "s", "d", "f");
39 List<String> all = new ArrayList<String>();
43 ChainIterable<String> tested = new ChainIterable<String>(list1).add(list2).add(list3);
45 for (String what : tested) {
46 assertEquals(all.get(count), what);
49 assertEquals(all.size(), count);
52 public void testChainIterableEmptyFirst() {
53 List<String> list1 = Arrays.asList();
54 List<String> list2 = Arrays.asList("ichi", "ni", "san");
55 List<String> list3 = Arrays.asList("a", "s", "d", "f");
56 List<String> all = new ArrayList<String>();
60 ChainIterable<String> tested = new ChainIterable<String>(list1).add(list2).add(list3);
62 for (String what : tested) {
63 assertEquals(all.get(count), what);
66 assertEquals(all.size(), count);
69 public void testChainIterableEmptyLast() {
70 List<String> list1 = Arrays.asList("foo", "bar", "baz");
71 List<String> list2 = Arrays.asList("ichi", "ni", "san");
72 List<String> list3 = Arrays.asList();
73 List<String> all = new ArrayList<String>();
77 ChainIterable<String> tested = new ChainIterable<String>(list1).add(list2).add(list3);
79 for (String what : tested) {
80 assertEquals(all.get(count), what);
83 assertEquals(all.size(), count);
86 public void testChainIterableEmptyMiddle() {
87 List<String> list1 = Arrays.asList("foo", "bar", "baz");
88 List<String> list2 = Arrays.asList();
89 List<String> list3 = Arrays.asList("a", "s", "d", "f");
90 List<String> all = new ArrayList<String>();
94 ChainIterable<String> tested = new ChainIterable<String>(list1).add(list2).add(list3);
96 for (String what : tested) {
97 assertEquals(all.get(count), what);
100 assertEquals(all.size(), count);
103 public void testToStringDoesntExhaustIterator() {
104 final ChainIterable<String> initial = new ChainIterable<String>();
105 initial.addItem("foo");
106 assertEquals("foo", initial.toString());;
107 assertEquals("foo", initial.toString());