mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
!788 补充 collection.iter包下的测试用例,完善注释并为部分方法补充空值校验
Merge pull request !788 from Createsequence/fix-coll
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package cn.hutool.core.collection.iter;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* test for {@link ArrayIter}
|
||||
*/
|
||||
public class ArrayIterTest {
|
||||
|
||||
@Test
|
||||
public void testHasNext() {
|
||||
Integer[] arr = new Integer[]{ 1, 2, 3 };
|
||||
ArrayIter<Integer> iter = new ArrayIter<>(arr);
|
||||
Assert.assertTrue(iter.hasNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNext() {
|
||||
Integer[] arr = new Integer[]{ 1, 2, 3 };
|
||||
ArrayIter<Integer> iter = new ArrayIter<>(arr);
|
||||
Assert.assertEquals((Integer)1, iter.next());
|
||||
Assert.assertEquals((Integer)2, iter.next());
|
||||
Assert.assertEquals((Integer)3, iter.next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemove() {
|
||||
Integer[] arr = new Integer[]{ 1, 2, 3 };
|
||||
ArrayIter<Integer> iter = new ArrayIter<>(arr);
|
||||
Assert.assertThrows(UnsupportedOperationException.class, iter::remove);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetArray() {
|
||||
Integer[] arr = new Integer[]{ 1, 2, 3 };
|
||||
ArrayIter<Integer> iter = new ArrayIter<>(arr);
|
||||
Assert.assertEquals(arr, iter.getArray());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReset() {
|
||||
Integer[] arr = new Integer[]{ 1, 2, 3 };
|
||||
ArrayIter<Integer> iter = new ArrayIter<>(arr);
|
||||
Assert.assertEquals((Integer)1, iter.next());
|
||||
iter.reset();
|
||||
Assert.assertEquals((Integer)1, iter.next());
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,47 @@
|
||||
package cn.hutool.core.collection.iter;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* test for {@link CopiedIter}
|
||||
*/
|
||||
public class CopiedIterTest {
|
||||
|
||||
@Test
|
||||
public void copyOf() {
|
||||
List<Integer> list = Arrays.asList(1, 2, 3);
|
||||
Iterator<Integer> iter = list.iterator();
|
||||
Assert.assertEquals((Integer)1, iter.next());
|
||||
|
||||
Assert.assertEquals((Integer)2, CopiedIter.copyOf(iter).next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasNext() {
|
||||
Assert.assertTrue(CopiedIter.copyOf(Arrays.asList(1, 2, 3).iterator()).hasNext());
|
||||
Assert.assertFalse(CopiedIter.copyOf(Collections.emptyIterator()).hasNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void next() {
|
||||
List<Integer> list = Arrays.asList(1, 2, 3);
|
||||
Iterator<Integer> iter = CopiedIter.copyOf(list.iterator());
|
||||
Assert.assertEquals((Integer)1, iter.next());
|
||||
Assert.assertEquals((Integer)2, iter.next());
|
||||
Assert.assertEquals((Integer)3, iter.next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void remove() {
|
||||
List<Integer> list = Arrays.asList(1, 2, 3);
|
||||
Iterator<Integer> iter = CopiedIter.copyOf(list.iterator());
|
||||
Assert.assertThrows(UnsupportedOperationException.class, iter::remove);
|
||||
}
|
||||
|
||||
}
|
@@ -4,7 +4,10 @@ import cn.hutool.core.collection.ListUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class FilterIterTest {
|
||||
|
||||
@@ -20,4 +23,40 @@ public class FilterIterTest {
|
||||
}
|
||||
Assert.assertEquals(2, count);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasNext() {
|
||||
Iterator<Integer> iter = new FilterIter<>(Arrays.asList(1, 2, 3).iterator(), i -> true);
|
||||
Assert.assertTrue(iter.hasNext());
|
||||
iter = new FilterIter<>(Collections.emptyIterator(), i -> true);
|
||||
Assert.assertFalse(iter.hasNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void next() {
|
||||
// 只保留奇数
|
||||
Iterator<Integer> iter = new FilterIter<>(Arrays.asList(1, 2, 3).iterator(), i -> (i & 1) == 1);
|
||||
Assert.assertEquals((Integer)1, iter.next());
|
||||
Assert.assertEquals((Integer)3, iter.next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void remove() {
|
||||
Iterator<Integer> iter = new FilterIter<>(Collections.emptyIterator(), i -> true);
|
||||
Assert.assertThrows(IllegalStateException.class, iter::remove);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIterator() {
|
||||
FilterIter<Integer> iter = new FilterIter<>(Collections.emptyIterator(), i -> true);
|
||||
Assert.assertSame(Collections.emptyIterator(), iter.getIterator());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFilter() {
|
||||
Predicate<Integer> predicate = i -> true;
|
||||
FilterIter<Integer> iter = new FilterIter<>(Collections.emptyIterator(), predicate);
|
||||
Assert.assertSame(predicate, iter.getFilter());
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,66 @@
|
||||
package cn.hutool.core.collection.iter;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* test for {@link IterChain}
|
||||
*/
|
||||
public class IterChainTest {
|
||||
|
||||
@Test
|
||||
public void addChain() {
|
||||
Iterator<Integer> iter1 = Arrays.asList(1, 2).iterator();
|
||||
Iterator<Integer> iter2 = Arrays.asList(3, 4).iterator();
|
||||
IterChain<Integer> iterChain = new IterChain<>();
|
||||
Assert.assertSame(iterChain, iterChain.addChain(iter1));
|
||||
Assert.assertSame(iterChain, iterChain.addChain(iter2));
|
||||
Assert.assertEquals(2, iterChain.allIterators.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasNext() {
|
||||
IterChain<Integer> iterChain = new IterChain<>();
|
||||
Assert.assertFalse(iterChain.hasNext());
|
||||
Assert.assertFalse(iterChain.addChain(Collections.emptyIterator()).hasNext());
|
||||
Assert.assertTrue(iterChain.addChain(Arrays.asList(3, 4).iterator()).hasNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void next() {
|
||||
Iterator<Integer> iter1 = Arrays.asList(1, 2).iterator();
|
||||
Iterator<Integer> iter2 = Arrays.asList(3, 4).iterator();
|
||||
IterChain<Integer> iterChain = new IterChain<>();
|
||||
Assert.assertSame(iterChain, iterChain.addChain(iter1));
|
||||
Assert.assertSame(iterChain, iterChain.addChain(iter2));
|
||||
Assert.assertEquals((Integer)1, iterChain.next());
|
||||
Assert.assertEquals((Integer)2, iterChain.next());
|
||||
Assert.assertEquals((Integer)3, iterChain.next());
|
||||
Assert.assertEquals((Integer)4, iterChain.next());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void remove() {
|
||||
IterChain<Integer> iterChain = new IterChain<>();
|
||||
iterChain.addChain(Arrays.asList(1, 2).iterator());
|
||||
Assert.assertThrows(IllegalStateException.class, iterChain::remove);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void iterator() {
|
||||
Iterator<Integer> iter1 = Arrays.asList(1, 2).iterator();
|
||||
Iterator<Integer> iter2 = Arrays.asList(3, 4).iterator();
|
||||
IterChain<Integer> iterChain = new IterChain<>();
|
||||
Assert.assertSame(iterChain, iterChain.addChain(iter1));
|
||||
Assert.assertSame(iterChain, iterChain.addChain(iter2));
|
||||
|
||||
Iterator<Iterator<Integer>> iterators = iterChain.iterator();
|
||||
Assert.assertSame(iter1, iterators.next());
|
||||
Assert.assertSame(iter2, iterators.next());
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,67 @@
|
||||
package cn.hutool.core.collection.iter;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* test for {@link IterUtil}
|
||||
*/
|
||||
public class IterUtilTest {
|
||||
|
||||
@Test
|
||||
public void testGetIter() {
|
||||
Assert.assertNull(IterUtil.getIter(null));
|
||||
Assert.assertEquals(Collections.emptyIterator(), IterUtil.getIter(Collections.emptyList()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsEmpty() {
|
||||
Assert.assertTrue(IterUtil.isEmpty(Collections.emptyIterator()));
|
||||
Assert.assertFalse(IterUtil.isEmpty(Arrays.asList(1, 2).iterator()));
|
||||
|
||||
Assert.assertTrue(IterUtil.isEmpty(Collections.emptyList()));
|
||||
Assert.assertFalse(IterUtil.isEmpty(Arrays.asList(1, 2)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsNotEmpty() {
|
||||
Assert.assertFalse(IterUtil.isNotEmpty(Collections.emptyIterator()));
|
||||
Assert.assertTrue(IterUtil.isNotEmpty(Arrays.asList(1, 2).iterator()));
|
||||
|
||||
Assert.assertFalse(IterUtil.isNotEmpty(Collections.emptyList()));
|
||||
Assert.assertTrue(IterUtil.isNotEmpty(Arrays.asList(1, 2)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHasNull() {
|
||||
Assert.assertFalse(IterUtil.hasNull(Arrays.asList(1, 3, 2).iterator()));
|
||||
Assert.assertTrue(IterUtil.hasNull(Arrays.asList(1, null, 2).iterator()));
|
||||
Assert.assertFalse(IterUtil.hasNull(Collections.emptyIterator()));
|
||||
Assert.assertTrue(IterUtil.hasNull(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsAllNull() {
|
||||
Assert.assertTrue(IterUtil.isAllNull(Arrays.asList(null, null)));
|
||||
Assert.assertFalse(IterUtil.isAllNull(Arrays.asList(1, null)));
|
||||
Assert.assertTrue(IterUtil.isAllNull((Iterable<?>)null));
|
||||
Assert.assertTrue(IterUtil.isAllNull(Arrays.asList(null, null).iterator()));
|
||||
Assert.assertFalse(IterUtil.isAllNull(Arrays.asList(1, null).iterator()));
|
||||
Assert.assertTrue(IterUtil.isAllNull((Iterator<?>)null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCountMap() {
|
||||
Object o1 = new Object();
|
||||
Object o2 = new Object();
|
||||
Map<Object, Integer> countMap = IterUtil.countMap(Arrays.asList(o1, o2, o1, o1).iterator());
|
||||
Assert.assertEquals((Integer)3, countMap.get(o1));
|
||||
Assert.assertEquals((Integer)1, countMap.get(o2));
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,31 @@
|
||||
package cn.hutool.core.collection.iter;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
|
||||
/**
|
||||
* test for {@link PartitionIter}
|
||||
*/
|
||||
public class PartitionIterTest {
|
||||
|
||||
@Test
|
||||
public void hasNext() {
|
||||
Iterator<Integer> iter = Arrays.asList(1, 2, 3, 4).iterator();
|
||||
PartitionIter<Integer> partitionIter = new PartitionIter<>(iter, 2);
|
||||
Assert.assertTrue(partitionIter.hasNext());
|
||||
Assert.assertFalse(new PartitionIter<>(Collections.emptyIterator(), 1).hasNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void next() {
|
||||
Iterator<Integer> iter = Arrays.asList(1, 2, 3, 4).iterator();
|
||||
PartitionIter<Integer> partitionIter = new PartitionIter<>(iter, 2);
|
||||
Assert.assertEquals(Arrays.asList(1, 2), partitionIter.next());
|
||||
Assert.assertEquals(Arrays.asList(3, 4), partitionIter.next());
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user