summaryrefslogtreecommitdiff
path: root/src/test/java/bjc/everge/ControlledStringTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/bjc/everge/ControlledStringTest.java')
-rw-r--r--src/test/java/bjc/everge/ControlledStringTest.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test/java/bjc/everge/ControlledStringTest.java b/src/test/java/bjc/everge/ControlledStringTest.java
new file mode 100644
index 0000000..8d76354
--- /dev/null
+++ b/src/test/java/bjc/everge/ControlledStringTest.java
@@ -0,0 +1,42 @@
+package bjc.everge;
+
+import bjc.everge.ControlledString.Control;
+
+import org.junit.Test;
+
+import static bjc.everge.ControlledString.Control.C;
+import static bjc.everge.TestUtils.*;
+
+import static org.junit.Assert.*;
+
+/**
+ * Test for ControlledString.
+ *
+ * @author Ben Culkin
+ */
+public class ControlledStringTest {
+ @Test
+ public void testNoControls() {
+ assertIsControl("a", "a");
+ assertIsControl("abc", "abc");
+ }
+
+ @Test
+ public void testSimpleControls() {
+ assertIsControl("//a//", "", C("a"));
+ assertIsControl("//a;b//", "", C("a"), C("b"));
+ assertIsControl("//a;b;c//", "", C("a"), C("b"), C("c"));
+ }
+
+ @Test
+ public void testArgedControls() {
+ assertIsControl("//a/b//", "", C("a", "b"));
+ assertIsControl("//a/b;c//", "", C("a", "b"), C("c"));
+ assertIsControl("//a/b;c/1/2//", "", C("a", "b"), C("c", "1", "2"));
+ }
+
+ @Test
+ public void testMixedControls() {
+ assertIsControl("//a//b", "b", C("a"));
+ }
+}