diff options
Diffstat (limited to 'src/test/java/bjc')
| -rw-r--r-- | src/test/java/bjc/everge/ControlledStringTest.java | 42 | ||||
| -rw-r--r-- | src/test/java/bjc/everge/ReplPairTest.java | 2 | ||||
| -rw-r--r-- | src/test/java/bjc/everge/StringUtilsTest.java | 38 | ||||
| -rw-r--r-- | src/test/java/bjc/everge/TestUtils.java | 72 |
4 files changed, 118 insertions, 36 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")); + } +} diff --git a/src/test/java/bjc/everge/ReplPairTest.java b/src/test/java/bjc/everge/ReplPairTest.java index 7c87160..8edb42e 100644 --- a/src/test/java/bjc/everge/ReplPairTest.java +++ b/src/test/java/bjc/everge/ReplPairTest.java @@ -52,7 +52,7 @@ public class ReplPairTest { @Test public void testReplaceExpOrder() { - assertMultiReplace("data/test/test5.rp", "a", "a", "aa", "ab"); + assertMultiReplace(false, "data/test/test5.rp", "a", "a", "aa", "ab"); } @Test diff --git a/src/test/java/bjc/everge/StringUtilsTest.java b/src/test/java/bjc/everge/StringUtilsTest.java index b20e074..bba5e11 100644 --- a/src/test/java/bjc/everge/StringUtilsTest.java +++ b/src/test/java/bjc/everge/StringUtilsTest.java @@ -6,8 +6,15 @@ import java.util.List; import org.junit.Test; +import static bjc.everge.TestUtils.*; + import static org.junit.Assert.*; +/** + * Test for StringUtils. + * + * @author Ben Culkin + */ public class StringUtilsTest { @Test public void testNullSplit() { @@ -48,35 +55,4 @@ public class StringUtilsTest { assertSplitsTo("a/", "|", "/", "a"); } - private void assertSplitsTo(String inp, String esc, String splat, String... right) { - assertSplitsTo(false, inp, esc, splat, right); - } - - private void assertSplitsTo(boolean doLog, String inp, String esc, String splat, String... right) { - try { - if (doLog) StringUtils.isDebug = true; - - String[] lst = StringUtils.escapeSplit(esc, splat, inp); - - if (doLog) { - System.err.printf("[TRACE] Returned "); - - for (String str : lst) { - System.err.printf("(%s) ", str); - } - - System.err.println(); - } - - assertArrayEquals(right, lst); - } catch (Exception ex) { - System.err.println("EXCEPTION"); - ex.printStackTrace(); - System.err.println(); - - assertTrue(false); - } finally { - if (doLog) StringUtils.isDebug = false; - } - } } diff --git a/src/test/java/bjc/everge/TestUtils.java b/src/test/java/bjc/everge/TestUtils.java index 2b9dc8d..e30a74e 100644 --- a/src/test/java/bjc/everge/TestUtils.java +++ b/src/test/java/bjc/everge/TestUtils.java @@ -1,5 +1,8 @@ package bjc.everge; +import bjc.everge.ControlledString.Control; +import bjc.everge.ControlledString.ParseStrings; + import java.io.FileInputStream; import java.io.IOException; @@ -61,8 +64,13 @@ public class TestUtils { } public static void assertMultiReplace(boolean logRep, String fle, String... inps) { - if (inps.length < 2) throw new IllegalArgumentException("ERROR: Must provide at least two strings to assertMultiReplace"); - if (inps.length % 2 != 0) throw new IllegalArgumentException("ERROR: Odd number of strings passed to assertMultiReplace"); + if (inps.length < 2) { + throw new IllegalArgumentException("ERROR: Must provide at least two strings to assertMultiReplace"); + } + + if (inps.length % 2 != 0) { + throw new IllegalArgumentException("ERROR: Odd number of strings passed to assertMultiReplace"); + } List<ReplPair> lrp = null; @@ -98,7 +106,9 @@ public class TestUtils { } public static void assertReplacesTo(boolean logRep, String right, List<ReplPair> rps, String inp) { - if (logRep) System.err.printf("\t[LOG] Checking '%s' -> '%s'\n", inp, right); + if (logRep) { + System.err.printf("\t[LOG] Checking '%s' -> '%s'\n", inp, right); + } String tmp = inp; @@ -107,9 +117,63 @@ public class TestUtils { tmp = rp.apply(tmp); - if (logRep) System.err.printf("\t[LOG] '%s' -> '%s'\t%s\n", oldTmp, tmp, rp); + if (logRep) { + System.err.printf("\t\t[LOG-STEP] '%s' -> '%s'\t%s\n", oldTmp, tmp, rp); + } } assertEquals(right, tmp); } + + public static void assertSplitsTo(String inp, String esc, String splat, String... right) { + assertSplitsTo(false, inp, esc, splat, right); + } + + public static void assertSplitsTo(boolean doLog, String inp, String esc, String splat, String... right) { + try { + if (doLog) StringUtils.isDebug = true; + + String[] lst = StringUtils.escapeSplit(esc, splat, inp); + + if (doLog) { + System.err.printf("[TRACE] Returned "); + + for (String str : lst) { + System.err.printf("(%s) ", str); + } + + System.err.println(); + } + + assertArrayEquals(right, lst); + } catch (Exception ex) { + System.err.println("EXCEPTION"); + ex.printStackTrace(); + System.err.println(); + + assertTrue(false); + } finally { + if (doLog) StringUtils.isDebug = false; + } + } + + public static void assertIsControl(String inp, String strang, Control... args) { + assertIsControl(false, inp, strang, args); + } + + public static void assertIsControl(boolean doLog, String inp, String strang, Control... args) { + ControlledString cs = ControlledString.parse(inp, new ParseStrings("//", ";", "/", "|")); + + if (doLog) { + System.err.printf("[LOG] CS: %s\n", cs); + } + + assertEquals(strang, cs.strang); + + assertEquals("array length mismatch:", args.length, cs.count()); + + for (int i = 0; i < args.length; i++) { + assertEquals("array value mismatch:", args[i], cs.controls[i]); + } + } } |
