99import java .io .File ;
1010import java .io .FileReader ;
1111import java .io .IOException ;
12+ import java .util .ArrayList ;
1213import java .util .Arrays ;
1314import java .util .LinkedList ;
1415import java .util .List ;
1516
1617public class GenerateUnifiedDiffTest extends TestCase {
17- static final String FS = File .separator ;
18+ private static final String FS = File .separator ;
19+ private static final String MOCK_FOLDER = "test" + FS + "mocks" + FS ;
1820
1921 public List <String > fileToLines (String filename ) {
2022 List <String > lines = new LinkedList <String >();
@@ -32,17 +34,17 @@ public List<String> fileToLines(String filename) {
3234 }
3335
3436 public void testGenerateUnified () {
35- List <String > origLines = fileToLines ("test" + FS + "mocks" + FS + "original.txt" );
36- List <String > revLines = fileToLines ("test" + FS + "mocks" + FS + "revised.txt" );
37+ List <String > origLines = fileToLines (MOCK_FOLDER + "original.txt" );
38+ List <String > revLines = fileToLines (MOCK_FOLDER + "revised.txt" );
3739
38- verify (origLines , revLines );
40+ verify (origLines , revLines , "original.txt" , "revised.txt" );
3941 }
4042
4143 public void testGenerateUnifiedWithOneDelta () {
42- List <String > origLines = fileToLines ("test" + FS + "mocks" + FS + "one_delta_test_original.txt" );
43- List <String > revLines = fileToLines ("test" + FS + "mocks" + FS + "one_delta_test_revised.txt" );
44+ List <String > origLines = fileToLines (MOCK_FOLDER + "one_delta_test_original.txt" );
45+ List <String > revLines = fileToLines (MOCK_FOLDER + "one_delta_test_revised.txt" );
4446
45- verify (origLines , revLines );
47+ verify (origLines , revLines , "one_delta_test_original.txt" , "one_delta_test_revised.txt" );
4648 }
4749
4850 public void testGenerateUnifiedDiffWithoutAnyDeltas () {
@@ -52,8 +54,8 @@ public void testGenerateUnifiedDiffWithoutAnyDeltas() {
5254 }
5355
5456 public void testDiff_Issue10 () {
55- final List <String > baseLines = fileToLines ("test" + FS + "mocks" + FS + "issue10_base.txt" );
56- final List <String > patchLines = fileToLines ("test" + FS + "mocks" + FS + "issue10_patch.txt" );
57+ final List <String > baseLines = fileToLines (MOCK_FOLDER + "issue10_base.txt" );
58+ final List <String > patchLines = fileToLines (MOCK_FOLDER + "issue10_patch.txt" );
5759 final Patch p = DiffUtils .parseUnifiedDiff (patchLines );
5860 try {
5961 DiffUtils .patch (baseLines , p );
@@ -62,22 +64,51 @@ public void testDiff_Issue10() {
6264 }
6365 }
6466
65- public void testDiff_Issue11 () {
66- final List <String > lines1 = fileToLines ("test" + FS + "mocks" + FS + "issue11_1.txt" );
67- final List <String > lines2 = fileToLines ("test" + FS + "mocks" + FS + "issue11_2.txt" );
68- verify (lines1 , lines2 );
67+ /**
68+ * Issue 12
69+ */
70+ public void testPatchWithNoDeltas () {
71+ final List <String > lines1 = fileToLines (MOCK_FOLDER + "issue11_1.txt" );
72+ final List <String > lines2 = fileToLines (MOCK_FOLDER + "issue11_2.txt" );
73+ verify (lines1 , lines2 , "issue11_1.txt" , "issue11_2.txt" );
6974 }
7075
7176 public void testDiff5 () {
72- final List <String > lines1 = fileToLines ("test" + FS + "mocks" + FS + "5A.txt" );
73- final List <String > lines2 = fileToLines ("test" + FS + "mocks" + FS + "5B.txt" );
74- verify (lines1 , lines2 );
77+ final List <String > lines1 = fileToLines (MOCK_FOLDER + "5A.txt" );
78+ final List <String > lines2 = fileToLines (MOCK_FOLDER + "5B.txt" );
79+ verify (lines1 , lines2 , "5A.txt" , "5B.txt" );
7580 }
7681
77- private void verify (List <String > origLines , List <String > revLines ) {
78- Patch p = DiffUtils .diff (origLines , revLines );
79- List <String > unifiedDiff = DiffUtils .generateUnifiedDiff (
80- "test" + FS + "mocks" + FS + "original.txt" , "test" + FS + "mocks" + FS + "revised.txt" , origLines , p , 10 );
82+ /**
83+ * Issue 19
84+ */
85+ public void testDiffWithHeaderLineInText () {
86+ List <String > original = new ArrayList <String >();
87+ List <String > revised = new ArrayList <String >();
88+
89+ original .add ("test line1" );
90+ original .add ("test line2" );
91+ original .add ("test line 4" );
92+ original .add ("test line 5" );
93+
94+ revised .add ("test line1" );
95+ revised .add ("test line2" );
96+ revised .add ("@@ -2,6 +2,7 @@" );
97+ revised .add ("test line 4" );
98+ revised .add ("test line 5" );
99+
100+ Patch patch = DiffUtils .diff (original , revised );
101+ List <String > udiff = DiffUtils .generateUnifiedDiff ("original" , "revised" ,
102+ original , patch , 10 );
103+ DiffUtils .parseUnifiedDiff (udiff );
104+ }
105+
106+ @ SuppressWarnings ("unchecked" )
107+ private void verify (List <String > origLines , List <String > revLines ,
108+ String originalFile , String revisedFile ) {
109+ Patch patch = DiffUtils .diff (origLines , revLines );
110+ List <String > unifiedDiff = DiffUtils .generateUnifiedDiff (originalFile , revisedFile ,
111+ origLines , patch , 10 );
81112
82113 Patch fromUnifiedPatch = DiffUtils .parseUnifiedDiff (unifiedDiff );
83114 List <String > patchedLines ;
0 commit comments