@Test public void testNextOnly() { NullFilteringIterator<String> iterator = getIterator(null, "foo", null, "bar", null); assertEquals(iterator.next(), "foo"); assertEquals(iterator.next(), "bar"); try { iterator.next(); fail("Expected NoSuchElementException"); } catch (NoSuchElementException e) { } }
@Test public void testEmptyIteratorThrowsExceptionOnNext() { NullFilteringIterator<String> iterator = getIterator(); // empty iterator try { iterator.next(); fail("Expected NoSuchElementException"); } catch (NoSuchElementException e) { } }
@Test public void testNullValue() { NullFilteringIterator<String> iterator = getIterator((String) null); assertFalse(iterator.hasNext()); try { iterator.next(); fail("Expected NoSuchElementException"); } catch (NoSuchElementException e) { } }
@Test public void testNonNullValue() { NullFilteringIterator<String> iterator = getIterator("foo"); assertTrue(iterator.hasNext()); assertEquals(iterator.next(), "foo"); assertFalse(iterator.hasNext()); }
@Test public void testMultipleNullValuesAtTheEnd() { NullFilteringIterator<String> iterator = getIterator("foo", null, null, null); assertTrue(iterator.hasNext()); assertEquals(iterator.next(), "foo"); assertFalse(iterator.hasNext()); }
@Test public void testNullValueAtTheEnd() { NullFilteringIterator<String> iterator = getIterator("foo", null); assertTrue(iterator.hasNext()); assertEquals(iterator.next(), "foo"); assertFalse(iterator.hasNext()); }
@Test public void testSingleNullValue() { NullFilteringIterator<String> iterator = getIterator(null, "foo"); assertTrue(iterator.hasNext()); assertEquals(iterator.next(), "foo"); assertFalse(iterator.hasNext()); }
@Test public void testMultipleConsecutiveNullValues() { NullFilteringIterator<String> iterator = getIterator(null, null, null, "foo"); assertTrue(iterator.hasNext()); assertEquals(iterator.next(), "foo"); assertFalse(iterator.hasNext()); }
@Test public void testHasNextDoesNotAdvanceIterator() { NullFilteringIterator<String> iterator = getIterator("foo"); assertTrue(iterator.hasNext()); assertTrue(iterator.hasNext()); assertEquals(iterator.next(), "foo"); assertFalse(iterator.hasNext()); }