summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/bjc/data/MarkListIteratorTest.java41
-rw-r--r--src/test/java/bjc/test/TestUtils.java8
2 files changed, 48 insertions, 1 deletions
diff --git a/src/test/java/bjc/data/MarkListIteratorTest.java b/src/test/java/bjc/data/MarkListIteratorTest.java
new file mode 100644
index 0000000..6eb4994
--- /dev/null
+++ b/src/test/java/bjc/data/MarkListIteratorTest.java
@@ -0,0 +1,41 @@
+package bjc.data;
+
+import static org.junit.Assert.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Test;
+
+import bjc.test.TestUtils;
+
+/**
+ * Tests for {@link MarkListIterator}
+ * @author bjcul
+ *
+ */
+@SuppressWarnings("javadoc")
+public class MarkListIteratorTest {
+
+ @Test
+ public void test() {
+ List<String> list1 = Arrays.asList("a", "b", "c");
+
+ MarkListIterator<String> itr1 = new MarkListIterator<>(list1);
+ itr1.mark();
+
+ assertFalse(itr1.hasPrevious());
+ assertTrue(itr1.hasNext());
+ TestUtils.assertIteratorEquals(itr1, "a", "b", "c");
+
+ assertTrue(itr1.hasPrevious());
+ assertFalse(itr1.hasNext());
+
+ itr1.rollback(false);
+
+ assertFalse(itr1.hasPrevious());
+ assertTrue(itr1.hasNext());
+ TestUtils.assertIteratorEquals(itr1, "a", "b", "c");
+ }
+
+}
diff --git a/src/test/java/bjc/test/TestUtils.java b/src/test/java/bjc/test/TestUtils.java
index d79157d..04cdf70 100644
--- a/src/test/java/bjc/test/TestUtils.java
+++ b/src/test/java/bjc/test/TestUtils.java
@@ -21,7 +21,13 @@ public class TestUtils {
public static <T> void assertIteratorEquals(Iterator<T> src, T... vals) {
for (int i = 0; i < vals.length; i++) {
if (src.hasNext()) {
- assertEquals(vals[i], src.next());
+ T actNext = src.next();
+ T expNext = vals[i];
+
+ String fmt = "mismatch at index %d";
+ String msg = String.format(fmt, i);
+
+ assertEquals(msg, expNext, actNext);
} else {
String msg = String.format("not enough values: got %d, wanted %d", i,
vals.length);