1
1
package diffutils ;
2
2
3
- import java .util .Arrays ;
4
- import java .util .List ;
5
-
6
3
import difflib .DiffRow ;
7
4
import difflib .DiffRowGenerator ;
8
-
9
5
import junit .framework .TestCase ;
10
6
7
+ import java .util .Arrays ;
8
+ import java .util .List ;
9
+
10
+ import static org .hamcrest .core .Is .is ;
11
+ import static org .junit .Assert .assertThat ;
12
+
11
13
public class DiffRowGeneratorTest extends TestCase {
12
14
13
15
public void testGenerator_Default () {
@@ -35,7 +37,7 @@ public void testGenerator_InlineDiff() {
35
37
print (rows );
36
38
37
39
assertEquals (3 , rows .size ());
38
- assertTrue (rows .get (0 ).getOldLine ().indexOf ("<span " ) > 0 );
40
+ assertTrue (rows .get (0 ).getOldLine ().indexOf ("<del> " ) > 0 );
39
41
}
40
42
41
43
public void testGenerator_IgnoreWhitespaces () {
@@ -56,6 +58,101 @@ public void testGenerator_IgnoreWhitespaces() {
56
58
assertEquals (rows .get (3 ).getTag (), DiffRow .Tag .CHANGE );
57
59
}
58
60
61
+ public void testChangeToEmptyLine () {
62
+ String first = "Test \n \n o\n " ;
63
+ String second ="Test\n \n o\n " ;
64
+
65
+ DiffRowGenerator generator = new DiffRowGenerator .Builder ()
66
+ .showInlineDiffs (true )
67
+ .columnWidth (Integer .MAX_VALUE ) // do not wrap
68
+ .build ();
69
+ List <DiffRow > rows = generator .generateDiffRows (split (first ), split (second ));
70
+ print (rows );
71
+
72
+ assertEquals (3 , rows .size ());
73
+ assertThat (rows .size (), is (3 ));
74
+ assertThat (rows .get (0 ).getTag (), is (DiffRow .Tag .CHANGE ));
75
+ assertThat (rows .get (0 ).getOldLine ().indexOf ("<del>" ), is (4 ));
76
+ assertThat (rows .get (1 ).getTag (), is (DiffRow .Tag .CHANGE ));
77
+ assertThat (rows .get (1 ).getOldLine ().indexOf ("<del>" ), is (0 ));
78
+ assertThat (rows .get (2 ).getTag (), is (DiffRow .Tag .EQUAL ));
79
+ }
80
+
81
+ public void testChangeToTwoEmptyLine () {
82
+ String first = "One\n \n Two\n \n Three\n " ;
83
+ String second ="One\n \n Two\n \n Three\n " ;
84
+
85
+ DiffRowGenerator generator = new DiffRowGenerator .Builder ()
86
+ .showInlineDiffs (true )
87
+ .columnWidth (Integer .MAX_VALUE ) // do not wrap
88
+ .build ();
89
+ List <DiffRow > rows = generator .generateDiffRows (split (first ), split (second ));
90
+ print (rows );
91
+
92
+ assertEquals (5 , rows .size ());
93
+ assertThat (rows .get (0 ).getTag (), is (DiffRow .Tag .EQUAL ));
94
+
95
+ assertThat (rows .get (1 ).getTag (), is (DiffRow .Tag .CHANGE ));
96
+ assertThat (rows .get (1 ).getOldLine ().indexOf ("<del>" ), is (0 ));
97
+
98
+ assertThat (rows .get (2 ).getTag (), is (DiffRow .Tag .EQUAL ));
99
+
100
+ assertThat (rows .get (3 ).getTag (), is (DiffRow .Tag .CHANGE ));
101
+ assertThat (rows .get (3 ).getOldLine ().indexOf ("<del>" ), is (0 ));
102
+
103
+ }
104
+
105
+ public void testDeleteLine () {
106
+ String first ="Equal Line\n Deleted Line\n Equal Line 2\n " ;
107
+ String second = "Equal Line\n Equal Line 2\n " ;
108
+
109
+ DiffRowGenerator generator = new DiffRowGenerator .Builder ()
110
+ .showInlineDiffs (true )
111
+ .columnWidth (Integer .MAX_VALUE ) // do not wrap
112
+ .build ();
113
+ List <DiffRow > rows = generator .generateDiffRows (split (first ), split (second ));
114
+ print (rows );
115
+
116
+ assertThat (rows .size (), is (3 ));
117
+ assertThat (rows .get (0 ).getTag (), is (DiffRow .Tag .EQUAL ));
118
+ assertThat (rows .get (1 ).getTag (), is (DiffRow .Tag .DELETE ));
119
+ assertThat (rows .get (2 ).getTag (), is (DiffRow .Tag .EQUAL ));
120
+ }
121
+
122
+ public void testInsertedLine () {
123
+ String first = "Equal Line\n Equal Line 2\n " ;
124
+ String second = "Equal Line\n Deleted Line\n Equal Line 2\n " ;
125
+
126
+ DiffRowGenerator generator = new DiffRowGenerator .Builder ()
127
+ .showInlineDiffs (true )
128
+ .columnWidth (Integer .MAX_VALUE ) // do not wrap
129
+ .build ();
130
+ List <DiffRow > rows = generator .generateDiffRows (split (first ), split (second ));
131
+ print (rows );
132
+
133
+ assertThat (rows .size (), is (3 ));
134
+ assertThat (rows .get (0 ).getTag (), is (DiffRow .Tag .EQUAL ));
135
+ assertThat (rows .get (1 ).getTag (), is (DiffRow .Tag .INSERT ));
136
+ assertThat (rows .get (2 ).getTag (), is (DiffRow .Tag .EQUAL ));
137
+ }
138
+
139
+ public void testChangedLine () {
140
+ String first = "Equal Line\n Line to be changed\n Equal Line 2\n " ;
141
+ String second = "Equal Line\n Line changed test\n Equal Line 2\n " ;
142
+
143
+ DiffRowGenerator generator = new DiffRowGenerator .Builder ()
144
+ .showInlineDiffs (true )
145
+ .columnWidth (Integer .MAX_VALUE ) // do not wrap
146
+ .build ();
147
+ List <DiffRow > rows = generator .generateDiffRows (split (first ), split (second ));
148
+ print (rows );
149
+
150
+ assertThat (rows .size (), is (3 ));
151
+ assertThat (rows .get (0 ).getTag (), is (DiffRow .Tag .EQUAL ));
152
+ assertThat (rows .get (1 ).getTag (), is (DiffRow .Tag .CHANGE ));
153
+ assertThat (rows .get (2 ).getTag (), is (DiffRow .Tag .EQUAL ));
154
+ }
155
+
59
156
private List <String > split (String content ) {
60
157
return Arrays .asList (content .split ("\n " ));
61
158
}
0 commit comments