forked from bluekeyes/go-gitdiff
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparser_binary_test.go
54 lines (50 loc) · 1.13 KB
/
parser_binary_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package gitdiff
import (
"io"
"testing"
)
func TestParseBinaryMarker(t *testing.T) {
tests := map[string]struct {
Input string
IsBinary bool
HasData bool
Err bool
}{
"binaryPatch": {
Input: "GIT binary patch\n",
IsBinary: true,
HasData: true,
},
"binaryFileNoPatch": {
Input: "Binary files differ\n",
IsBinary: true,
HasData: false,
},
"textFile": {
Input: "@@ -10,14 +22,31 @@\n",
IsBinary: false,
HasData: false,
},
}
for name, test := range tests {
t.Run(name, func(t *testing.T) {
p := newTestParser(test.Input, true)
isBinary, hasData, err := p.ParseBinaryMarker()
if test.Err {
if err != nil || err == io.EOF {
t.Fatalf("expected error parsing binary marker, but got %v", err)
}
return
}
if err != nil {
t.Fatalf("unexpected error parsing binary marker: %v", err)
}
if test.IsBinary != isBinary {
t.Errorf("incorrect isBinary value: expected %t, actual %t", test.IsBinary, isBinary)
}
if test.HasData != hasData {
t.Errorf("incorrect hasData value: expected %t, actual %t", test.HasData, hasData)
}
})
}
}