You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Claudenw (via GitHub)" <gi...@apache.org> on 2023/03/22 17:51:02 UTC

[GitHub] [commons-collections] Claudenw commented on a diff in pull request #308: COLLECTIONS-770 When creating an iterator chain containing other iterator chains flatten the resulting internal object.

Claudenw commented on code in PR #308:
URL: https://github.com/apache/commons-collections/pull/308#discussion_r1145199169


##########
src/test/java/org/apache/commons/collections4/iterators/IteratorChainTest.java:
##########
@@ -170,4 +177,60 @@ public void testEmptyChain() {
         );
     }
 
+    @Test
+    public void testChainOfChains() {
+        final Iterator<String> iteratorChain1 = new IteratorChain<>(list1.iterator(), list2.iterator());
+        final Iterator<String> iteratorChain2 = new IteratorChain<>(list3.iterator(), list4.iterator());
+        final Iterator<String> iteratorChainOfChains = new IteratorChain<>(iteratorChain1, iteratorChain2);
+
+        for (final String testValue : testArray1234) {
+            final Object iterValue = iteratorChainOfChains.next();
+
+            assertEquals( "Iteration value is correct", testValue, iterValue );
+        }
+
+        assertFalse("Iterator should now be empty", iteratorChainOfChains.hasNext());
+
+        try {
+            iteratorChainOfChains.next();
+        } catch (final Exception e) {
+            assertEquals("NoSuchElementException must be thrown", e.getClass(), NoSuchElementException.class);
+        }
+    }
+
+    @Test
+    public void testChainOfUnmodifiableChains() {
+        final Iterator<String> iteratorChain1 = new IteratorChain<>(list1.iterator(), list2.iterator());
+        final Iterator<String> unmodifiableChain1 = IteratorUtils.unmodifiableIterator(iteratorChain1);
+        final Iterator<String> iteratorChain2 = new IteratorChain<>(list3.iterator(), list4.iterator());
+        final Iterator<String> unmodifiableChain2 = IteratorUtils.unmodifiableIterator(iteratorChain2);
+        final Iterator<String> iteratorChainOfChains = new IteratorChain<>(unmodifiableChain1, unmodifiableChain2);
+
+        for (final String testValue : testArray1234) {
+            final Object iterValue = iteratorChainOfChains.next();
+
+            assertEquals( "Iteration value is correct", testValue, iterValue );
+        }
+
+        assertFalse("Iterator should now be empty", iteratorChainOfChains.hasNext());
+
+        try {
+            iteratorChainOfChains.next();
+        } catch (final Exception e) {
+            assertEquals("NoSuchElementException must be thrown", e.getClass(), NoSuchElementException.class);
+        }

Review Comment:
   Replace this with `assertThrows()`



##########
src/test/java/org/apache/commons/collections4/iterators/IteratorChainTest.java:
##########
@@ -170,4 +177,60 @@ public void testEmptyChain() {
         );
     }
 
+    @Test
+    public void testChainOfChains() {
+        final Iterator<String> iteratorChain1 = new IteratorChain<>(list1.iterator(), list2.iterator());
+        final Iterator<String> iteratorChain2 = new IteratorChain<>(list3.iterator(), list4.iterator());
+        final Iterator<String> iteratorChainOfChains = new IteratorChain<>(iteratorChain1, iteratorChain2);
+
+        for (final String testValue : testArray1234) {
+            final Object iterValue = iteratorChainOfChains.next();
+
+            assertEquals( "Iteration value is correct", testValue, iterValue );
+        }
+
+        assertFalse("Iterator should now be empty", iteratorChainOfChains.hasNext());
+
+        try {
+            iteratorChainOfChains.next();
+        } catch (final Exception e) {
+            assertEquals("NoSuchElementException must be thrown", e.getClass(), NoSuchElementException.class);
+        }

Review Comment:
   Replace this with `assertThrows()`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@commons.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org