Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 93 additions & 79 deletions src/jvmTest/kotlin/dev/gitlive/difflib/GenerateUnifiedDiffTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,91 +16,106 @@ import org.junit.Test

class GenerateUnifiedDiffTest {

// @Test
// @Throws(DiffException::class, IOException::class)
// fun testGenerateUnified() {
// val origLines = fileToLines(TestConstants.MOCK_FOLDER + "original.txt")
// val revLines = fileToLines(TestConstants.MOCK_FOLDER + "revised.txt")
//
// verify(origLines, revLines, "original.txt", "revised.txt")
// }

// @Test
// @Throws(DiffException::class, IOException::class)
// fun testGenerateUnifiedWithOneDelta() {
// val origLines = fileToLines(TestConstants.MOCK_FOLDER + "one_delta_test_original.txt")
// val revLines = fileToLines(TestConstants.MOCK_FOLDER + "one_delta_test_revised.txt")
//
// verify(origLines, revLines, "one_delta_test_original.txt", "one_delta_test_revised.txt")
// }

// @Test
// @Throws(DiffException::class)
// fun testGenerateUnifiedDiffWithoutAnyDeltas() {
// val test = Arrays.asList("abc")
// val patch = DiffUtils.diff(test, test)
// UnifiedDiffUtils.generateUnifiedDiff("abc", "abc", test, patch, 0)
// }

// @Test
// @Throws(IOException::class)
// fun testDiff_Issue10() {
// val baseLines = fileToLines(TestConstants.MOCK_FOLDER + "issue10_base.txt")
// val patchLines = fileToLines(TestConstants.MOCK_FOLDER + "issue10_patch.txt")
// val p = UnifiedDiffUtils.parseUnifiedDiff(patchLines)
// try {
// DiffUtils.patch(baseLines, p)
// } catch (e: PatchFailedException) {
// fail(e.message)
// }
//
// }
@Test
fun testUnifiedDiffWithOneContext() {
val origLines = fileToLines(TestConstants.MOCK_FOLDER + "original.txt")
val revLines = fileToLines(TestConstants.MOCK_FOLDER + "revised.txt")
val patch = DiffUtils.diff(origLines, revLines)
val unifiedDiff = UnifiedDiffUtils.generateUnifiedDiff(
"original.txt",
"revised.txt",
origLines,
patch,
1
)
println(unifiedDiff.stream().collect(joining("\n")))
}

@Test
@Throws(DiffException::class, IOException::class)
fun testGenerateUnified() {
val origLines = fileToLines(TestConstants.MOCK_FOLDER + "original.txt")
val revLines = fileToLines(TestConstants.MOCK_FOLDER + "revised.txt")

verify(origLines, revLines, "original.txt", "revised.txt")
}

@Test
@Throws(DiffException::class, IOException::class)
fun testGenerateUnifiedWithOneDelta() {
val origLines = fileToLines(TestConstants.MOCK_FOLDER + "one_delta_test_original.txt")
val revLines = fileToLines(TestConstants.MOCK_FOLDER + "one_delta_test_revised.txt")

verify(origLines, revLines, "one_delta_test_original.txt", "one_delta_test_revised.txt")
}

@Test
@Throws(DiffException::class)
fun testGenerateUnifiedDiffWithoutAnyDeltas() {
val test = Arrays.asList("abc")
val patch = DiffUtils.diff(test, test)
UnifiedDiffUtils.generateUnifiedDiff("abc", "abc", test, patch, 0)
}

@Test
@Throws(IOException::class)
fun testDiff_Issue10() {
val baseLines = fileToLines(TestConstants.MOCK_FOLDER + "issue10_base.txt")
val patchLines = fileToLines(TestConstants.MOCK_FOLDER + "issue10_patch.txt")
val p = UnifiedDiffUtils.parseUnifiedDiff(patchLines)
try {
DiffUtils.patch(baseLines, p)
} catch (e: PatchFailedException) {
fail(e.message)
}

}

/**
* Issue 12
*/
// @Test
// @Throws(DiffException::class, IOException::class)
// fun testPatchWithNoDeltas() {
// val lines1 = fileToLines(TestConstants.MOCK_FOLDER + "issue11_1.txt")
// val lines2 = fileToLines(TestConstants.MOCK_FOLDER + "issue11_2.txt")
// verify(lines1, lines2, "issue11_1.txt", "issue11_2.txt")
// }

// @Test
// @Throws(DiffException::class, IOException::class)
// fun testDiff5() {
// val lines1 = fileToLines(TestConstants.MOCK_FOLDER + "5A.txt")
// val lines2 = fileToLines(TestConstants.MOCK_FOLDER + "5B.txt")
// verify(lines1, lines2, "5A.txt", "5B.txt")
// }
@Test
@Throws(DiffException::class, IOException::class)
fun testPatchWithNoDeltas() {
val lines1 = fileToLines(TestConstants.MOCK_FOLDER + "issue11_1.txt")
val lines2 = fileToLines(TestConstants.MOCK_FOLDER + "issue11_2.txt")
verify(lines1, lines2, "issue11_1.txt", "issue11_2.txt")
}

@Test
@Throws(DiffException::class, IOException::class)
fun testDiff5() {
val lines1 = fileToLines(TestConstants.MOCK_FOLDER + "5A.txt")
val lines2 = fileToLines(TestConstants.MOCK_FOLDER + "5B.txt")
verify(lines1, lines2, "5A.txt", "5B.txt")
}
//
// /**
// * Issue 19
// */
// @Test
// @Throws(DiffException::class)
// fun testDiffWithHeaderLineInText() {
// val original = ArrayList<String>()
// val revised = ArrayList<String>()
//
// original.add("test line1")
// original.add("test line2")
// original.add("test line 4")
// original.add("test line 5")
//
// revised.add("test line1")
// revised.add("test line2")
// revised.add("@@ -2,6 +2,7 @@")
// revised.add("test line 4")
// revised.add("test line 5")
//
// val patch = DiffUtils.diff(original, revised)
// val udiff = UnifiedDiffUtils.generateUnifiedDiff("original", "revised",
// original, patch, 10)
// UnifiedDiffUtils.parseUnifiedDiff(udiff)
// }
//
@Test
@Throws(DiffException::class)
fun testDiffWithHeaderLineInText() {
val original = ArrayList<String>()
val revised = ArrayList<String>()

original.add("test line1")
original.add("test line2")
original.add("test line 4")
original.add("test line 5")

revised.add("test line1")
revised.add("test line2")
revised.add("@@ -2,6 +2,7 @@")
revised.add("test line 4")
revised.add("test line 5")

val patch = DiffUtils.diff(original, revised)
val udiff = UnifiedDiffUtils.generateUnifiedDiff("original", "revised",
original, patch, 10)
UnifiedDiffUtils.parseUnifiedDiff(udiff)
}

@Throws(DiffException::class)
private fun verify(origLines: List<String>, revLines: List<String>,
originalFile: String, revisedFile: String) {
Expand Down Expand Up @@ -133,9 +148,8 @@ class GenerateUnifiedDiffTest {
@Throws(FileNotFoundException::class, IOException::class)
fun fileToLines(filename: String): List<String> {
val lines = ArrayList<String>()
var line = ""
BufferedReader(FileReader(filename)).use { `in` ->
while (`in`.readLine().also { line = it } != null) {
for (line in `in`.lines()) {
lines.add(line)
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/jvmTest/kotlin/dev/gitlive/difflib/TestConstants.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ package dev.gitlive.difflib
*/
object TestConstants {

val BASE_FOLDER_RESOURCES = "target/test-classes/"
val BASE_FOLDER_RESOURCES = "src/jvmTest/resources/"
/**
* The base folder containing the test files.
*/
Expand Down