diff --git a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java index 1974828..f80cefb 100644 --- a/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java +++ b/src/test/java/com/github/difflib/text/DiffRowGeneratorTest.java @@ -1,9 +1,13 @@ package com.github.difflib.text; import com.github.difflib.algorithm.DiffException; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; +import static java.util.stream.Collectors.toList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Test; @@ -263,7 +267,7 @@ public class DiffRowGeneratorTest { assertEquals("[CHANGE, ,]", rows.get(1).toString()); assertEquals("[EQUAL,other,other]", rows.get(2).toString()); } - + @Test public void testGeneratorIssue14() throws DiffException { DiffRowGenerator generator = DiffRowGenerator.create() @@ -282,4 +286,33 @@ public class DiffRowGeneratorTest { assertEquals(1, rows.size()); assertEquals("~J. G. Feldstein~**T. P. Pastor**, Chair", rows.get(0).getOldLine()); } + + @Test + public void testGeneratorIssue15() throws DiffException, IOException { + DiffRowGenerator generator = DiffRowGenerator.create() + .showInlineDiffs(true) //show the ~ ~ and ** ** symbols on each difference + .inlineDiffByWord(true) //show the ~ ~ and ** ** around each different word instead of each letter + //.reportLinesUnchanged(true) //experiment + .oldTag(f -> "~") + .newTag(f -> "**") + .build(); + + List listOne = Files.lines(new File("target/test-classes/mocks/issue15_1.txt").toPath()) + .collect(toList()); + + List listTwo = Files.lines(new File("target/test-classes/mocks/issue15_2.txt").toPath()) + .collect(toList()); + + List rows = generator.generateDiffRows(listOne, listTwo); + + assertEquals(9, rows.size()); + + for (DiffRow row : rows) { + System.out.println("|" + row.getOldLine() + "| " + row.getNewLine() + " |"); + if (!row.getOldLine().startsWith("TABLE_NAME")) { + assertTrue(row.getNewLine().startsWith("**ACTIONS_C16913**")); + assertTrue(row.getOldLine().startsWith("~ACTIONS_C1700")); + } + } + } } diff --git a/src/test/resources/mocks/issue15_1.txt b/src/test/resources/mocks/issue15_1.txt new file mode 100644 index 0000000..fb40d61 --- /dev/null +++ b/src/test/resources/mocks/issue15_1.txt @@ -0,0 +1,9 @@ +TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, NULLABLE, +ACTIONS_C17005, ID, NUMBER, 22, 19, N, +ACTIONS_C17005, ISSUEID, NUMBER, 22, 19, Y, +ACTIONS_C17005, MODIFIED, NUMBER, 22, 10, Y, +ACTIONS_C17005, TABLE, VARCHAR2, 1020, null, Y, +ACTIONS_C17005, S_NAME, CLOB, 4000, null, Y, +ACTIONS_C17008, ID, NUMBER, 22, 19, N, +ACTIONS_C17008, ISSUEID, NUMBER, 22, 19, Y, +ACTIONS_C17008, MODIFIED, NUMBER, 22, 10, Y, \ No newline at end of file diff --git a/src/test/resources/mocks/issue15_2.txt b/src/test/resources/mocks/issue15_2.txt new file mode 100644 index 0000000..8b62265 --- /dev/null +++ b/src/test/resources/mocks/issue15_2.txt @@ -0,0 +1,9 @@ +TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, NULLABLE, +ACTIONS_C16913, ID, NUMBER, 22, 19, N, +ACTIONS_C16913, ISSUEID, NUMBER, 22, 19, Y, +ACTIONS_C16913, MODIFIED, NUMBER, 22, 10, Y, +ACTIONS_C16913, VRS, NUMBER, 22, 1, Y, +ACTIONS_C16913, ZTABS, VARCHAR2, 255, null, Y, +ACTIONS_C16913, ZTABS_S, VARCHAR2, 255, null, Y, +ACTIONS_C16913, TASK, VARCHAR2, 255, null, Y, +ACTIONS_C16913, HOURS_SPENT, VARCHAR2, 255, null, Y, \ No newline at end of file