package com.github.liblevenshtein.assertion; import java.util.Arrays; import java.util.Iterator; import org.testng.annotations.Test; import static com.github.liblevenshtein.assertion.IteratorAssertions.assertThat; public class IteratorAssertionsTest { private static final String FOO = "foo"; private static final String BAR = "bar"; private static final String BAZ = "baz"; private static final String QUX = "qux"; @Test public void testOperations() { assertThat(iter(FOO, BAR, BAZ)) .hasNext(FOO) .hasNext(BAR) .hasNext(BAZ) .doesNotHaveNext(); assertThat(iter(FOO, BAR, BAZ)) .isEqualTo(iter(FOO, BAR, BAZ)); } @Test(expectedExceptions = AssertionError.class) public void testHasNextAgainstViolation() { assertThat(iter()).hasNext(); } @Test(expectedExceptions = AssertionError.class) public void testHasNextValueAgainstViolation() { assertThat(iter(FOO)).hasNext(BAR); } @Test(expectedExceptions = AssertionError.class) public void testDoesNotHaveNextAgainstViolation() { assertThat(iter(FOO)).doesNotHaveNext(); } @Test(expectedExceptions = AssertionError.class) public void testIsEqualsToAgainstDifferingValues() { assertThat(iter(FOO, BAR, BAZ)) .isEqualTo(iter(FOO, BAR, QUX)); } @Test(expectedExceptions = AssertionError.class) public void testIsEqualToAgainstTooFewValues() { assertThat(iter(FOO, BAR)) .isEqualTo(iter(FOO, BAR, BAZ)); } @Test(expectedExceptions = AssertionError.class) public void testIsEqualToAgainstTooManyValues() { assertThat(iter(FOO, BAR, BAZ)) .isEqualTo(iter(FOO, BAR)); } private Iterator<String> iter(final String... values) { return Arrays.asList(values).iterator(); } }