summaryrefslogtreecommitdiff
path: root/src/test/java/bjc/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/bjc/data')
-rw-r--r--src/test/java/bjc/data/ArrayIteratorTest.java33
-rw-r--r--src/test/java/bjc/data/BooleanToggleTest.java17
-rw-r--r--src/test/java/bjc/data/CircularIteratorTest.java15
-rw-r--r--src/test/java/bjc/data/EitherTest.java35
4 files changed, 96 insertions, 4 deletions
diff --git a/src/test/java/bjc/data/ArrayIteratorTest.java b/src/test/java/bjc/data/ArrayIteratorTest.java
new file mode 100644
index 0000000..223eea2
--- /dev/null
+++ b/src/test/java/bjc/data/ArrayIteratorTest.java
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package bjc.data;
+
+import static org.junit.Assert.*;
+
+import org.junit.*;
+
+/**
+ * Test ArrayIterator
+ * @author Ben Culkin
+ *
+ */
+public class ArrayIteratorTest {
+
+ /**
+ * Test ArrayIterator
+ */
+ @Test
+ public void test() {
+ ArrayIterator<String> itr = new ArrayIterator<>("a", "b", "c");
+
+ assertTrue(itr.hasNext());
+ assertEquals("a", itr.next());
+ assertEquals("b", itr.next());
+ assertEquals("c", itr.next());
+
+ assertFalse(itr.hasNext());
+ assertNull(itr.next());
+ }
+
+}
diff --git a/src/test/java/bjc/data/BooleanToggleTest.java b/src/test/java/bjc/data/BooleanToggleTest.java
index bf7a04f..0b0937f 100644
--- a/src/test/java/bjc/data/BooleanToggleTest.java
+++ b/src/test/java/bjc/data/BooleanToggleTest.java
@@ -1,6 +1,6 @@
package bjc.data;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
import org.junit.Test;
@@ -33,5 +33,20 @@ public class BooleanToggleTest {
// Check set works
assertEquals(true, tog.peek());
+
+ BooleanToggle tog2 = new BooleanToggle(true);
+
+ // Test equals/hashcode
+ assertEquals(tog, tog2);
+ assertEquals(tog.hashCode(), tog2.hashCode());
+
+ // Swap toggle
+ tog2.get();
+
+ assertNotEquals(tog.hashCode(), tog2.hashCode());
+ assertNotEquals(tog, tog2);
+
+ // Test toString
+ assertEquals("true", tog.toString());
}
}
diff --git a/src/test/java/bjc/data/CircularIteratorTest.java b/src/test/java/bjc/data/CircularIteratorTest.java
index dfe2a17..8091e1c 100644
--- a/src/test/java/bjc/data/CircularIteratorTest.java
+++ b/src/test/java/bjc/data/CircularIteratorTest.java
@@ -1,9 +1,7 @@
package bjc.data;
import static bjc.TestUtils.*;
-
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
import org.junit.Test;
@@ -45,4 +43,15 @@ public class CircularIteratorTest {
// Check we repeat correctly, and can still repeat
assertIteratorEquals(true, itr, "c", "c", "c");
}
+
+ /**
+ * Test that remove throws an exception.
+ */
+ @Test(expected = UnsupportedOperationException.class)
+ public void testRemove() {
+ Iterator<String> arrayItr = new ArrayIterator<>("a", "b");
+ CircularIterator<String> itr = new CircularIterator<>(() -> arrayItr);
+
+ itr.remove();
+ }
}
diff --git a/src/test/java/bjc/data/EitherTest.java b/src/test/java/bjc/data/EitherTest.java
new file mode 100644
index 0000000..ef2d12b
--- /dev/null
+++ b/src/test/java/bjc/data/EitherTest.java
@@ -0,0 +1,35 @@
+package bjc.data;
+
+import static org.junit.Assert.*;
+
+import java.util.*;
+
+import org.junit.*;
+
+@SuppressWarnings("javadoc")
+public class EitherTest
+{
+ private Either<String, String> leftEither;
+ private Either<String, String> rightEither;
+
+ @Before
+ public void setUp() throws Exception {
+ leftEither = Either.left("left");
+ rightEither = Either.right("right");
+ }
+
+ @Test
+ public void testIsLeft() {
+ assertTrue("isLeft properly marks left eithers", leftEither.isLeft());
+ assertFalse("isLeft properly marks right eithers", rightEither.isLeft());
+ }
+
+ @Test
+ public void testGetLeft() {
+ assertEquals("getLeft treats left eithers properly",
+ Optional.of("left"), leftEither.getLeft());
+ assertEquals("getLeft treats right eithers properly",
+ Optional.empty(), rightEither.getLeft());
+ }
+
+}