Skip to content

Commit c182306

Browse files
committed
adding tests for diff3_merge
1 parent 0101d7d commit c182306

File tree

3 files changed

+78
-0
lines changed

3 files changed

+78
-0
lines changed

test/src/diff3_dig_test.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ void defineTests() {
1919
Diff3DigResult diff3DigResult = diff3_dig(a, o, b);
2020

2121
expect(diff3DigResult, isNotNull);
22+
expect(diff3DigResult.Conflict, isTrue);
2223
String expectResultText = """AA
2324
a
2425
<<<<<<<<<

test/src/diff3_merge_test.dart

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
library diff3_merge_test;
2+
3+
import "package:unittest/unittest.dart";
4+
5+
import "package:diff/diff.dart";
6+
7+
void defineTests() {
8+
group('diff3_merge', () {
9+
test('multiline difference', () {
10+
// base
11+
List<String> o = "AA ZZ 00 M 99".split(" ");
12+
13+
// ours
14+
List<String> a = "AA a b c ZZ new 00 a a M 99".split(" ");
15+
16+
// theirs
17+
List<String> b = "AA a d c ZZ 11 M z z 99".split(" ");
18+
19+
List<IMergeResultBlock> mergeResultBlocks = diff3_merge(a, o, b, false);
20+
21+
expect(mergeResultBlocks, isNotNull);
22+
expect(mergeResultBlocks.length, equals(5));
23+
24+
expect(mergeResultBlocks[0], new isInstanceOf<MergeOKResultBlock>());
25+
expect((mergeResultBlocks[0] as MergeOKResultBlock).ContentLines.length,
26+
equals(1));
27+
expect((mergeResultBlocks[0] as MergeOKResultBlock).ContentLines[0],
28+
equals("AA"));
29+
30+
expect(mergeResultBlocks[1], new isInstanceOf<MergeConflictResultBlock>());
31+
expect((mergeResultBlocks[1] as MergeConflictResultBlock).LeftIndex,
32+
equals(1));
33+
expect((mergeResultBlocks[1] as MergeConflictResultBlock).LeftLines,
34+
equals(["a", "b", "c"]));
35+
expect((mergeResultBlocks[1] as MergeConflictResultBlock).RightIndex,
36+
equals(1));
37+
expect((mergeResultBlocks[1] as MergeConflictResultBlock).RightLines,
38+
equals(["a", "d", "c"]));
39+
expect((mergeResultBlocks[1] as MergeConflictResultBlock).OldIndex,
40+
equals(1));
41+
expect((mergeResultBlocks[1] as MergeConflictResultBlock).OldLines,
42+
isEmpty);
43+
44+
expect(mergeResultBlocks[2], new isInstanceOf<MergeOKResultBlock>());
45+
expect((mergeResultBlocks[2] as MergeOKResultBlock).ContentLines.length,
46+
equals(1));
47+
expect((mergeResultBlocks[2] as MergeOKResultBlock).ContentLines[0],
48+
equals("ZZ"));
49+
50+
expect(mergeResultBlocks[3], new isInstanceOf<MergeConflictResultBlock>());
51+
expect((mergeResultBlocks[3] as MergeConflictResultBlock).RightIndex,
52+
equals(5));
53+
expect((mergeResultBlocks[3] as MergeConflictResultBlock).RightLines,
54+
equals(["11"]));
55+
expect((mergeResultBlocks[3] as MergeConflictResultBlock).LeftIndex,
56+
equals(5));
57+
expect((mergeResultBlocks[3] as MergeConflictResultBlock).LeftLines,
58+
equals(["new", "00", "a", "a"]));
59+
expect((mergeResultBlocks[3] as MergeConflictResultBlock).OldIndex,
60+
equals(2));
61+
expect((mergeResultBlocks[3] as MergeConflictResultBlock).OldLines,
62+
equals(["00"]));
63+
64+
expect(mergeResultBlocks[4], new isInstanceOf<MergeOKResultBlock>());
65+
expect((mergeResultBlocks[4] as MergeOKResultBlock).ContentLines.length,
66+
equals(4));
67+
expect((mergeResultBlocks[4] as MergeOKResultBlock).ContentLines,
68+
equals(["M", "z", "z", "99"]));
69+
});
70+
});
71+
}
72+
73+
void main() {
74+
defineTests();
75+
}

test/test_runner.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ library test_runner;
33
import "src/side_enum_test.dart" as side_enum_test;
44
import "src/diff3_set_test.dart" as diff3_set_test;
55
import "src/diff3_dig_test.dart" as diff3_dig_test;
6+
import "src/diff3_merge_test.dart" as diff3_merge_test;
67

78
void main() {
89
side_enum_test.main();
910
diff3_set_test.main();
1011
diff3_dig_test.main();
12+
diff3_merge_test.main();
1113
}

0 commit comments

Comments
 (0)