@@ -12,62 +12,86 @@ import (
12
12
13
13
func Test_parseTagData (t * testing.T ) {
14
14
testData := []struct {
15
- data [] byte
16
- tag Tag
15
+ data string
16
+ expected Tag
17
17
}{
18
- {data : []byte (`object 3b114ab800c6432ad42387ccf6bc8d4388a2885a
18
+ {
19
+ data : `object 3b114ab800c6432ad42387ccf6bc8d4388a2885a
19
20
type commit
20
21
tag 1.22.0
21
22
tagger Lucas Michot <[email protected] > 1484491741 +0100
22
23
23
- ` ), tag : Tag {
24
- Name : "" ,
25
- ID : Sha1ObjectFormat .EmptyObjectID (),
26
- Object : & Sha1Hash {0x3b , 0x11 , 0x4a , 0xb8 , 0x0 , 0xc6 , 0x43 , 0x2a , 0xd4 , 0x23 , 0x87 , 0xcc , 0xf6 , 0xbc , 0x8d , 0x43 , 0x88 , 0xa2 , 0x88 , 0x5a },
27
- Type : "commit" ,
28
- Tagger :
& Signature {
Name :
"Lucas Michot" ,
Email :
"[email protected] " ,
When :
time .
Unix (
1484491741 ,
0 )},
29
- Message : "" ,
30
- Signature : nil ,
31
- }},
32
- {data : []byte (`object 7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc
24
+ ` ,
25
+ expected : Tag {
26
+ Name : "" ,
27
+ ID : Sha1ObjectFormat .EmptyObjectID (),
28
+ Object : MustIDFromString ("3b114ab800c6432ad42387ccf6bc8d4388a2885a" ),
29
+ Type : "commit" ,
30
+ Tagger :
& Signature {
Name :
"Lucas Michot" ,
Email :
"[email protected] " ,
When :
time .
Unix (
1484491741 ,
0 ).
In (
time .
FixedZone (
"" ,
3600 ))},
31
+ Message : "" ,
32
+ Signature : nil ,
33
+ },
34
+ },
35
+ {
36
+ data : `object 7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc
33
37
type commit
34
38
tag 1.22.1
35
39
tagger Lucas Michot <[email protected] > 1484553735 +0100
36
40
37
41
test message
38
42
o
39
43
40
- ono` ), tag : Tag {
41
- Name : "" ,
42
- ID : Sha1ObjectFormat .EmptyObjectID (),
43
- Object : & Sha1Hash {0x7c , 0xdf , 0x42 , 0xc0 , 0xb1 , 0xcc , 0x76 , 0x3a , 0xb7 , 0xe4 , 0xc3 , 0x3c , 0x47 , 0xa2 , 0x4e , 0x27 , 0xc6 , 0x6b , 0xfc , 0xcc },
44
- Type : "commit" ,
45
- Tagger :
& Signature {
Name :
"Lucas Michot" ,
Email :
"[email protected] " ,
When :
time .
Unix (
1484553735 ,
0 )},
46
- Message : "test message\n o\n \n ono" ,
47
- Signature : nil ,
48
- }},
44
+ ono` ,
45
+ expected : Tag {
46
+ Name : "" ,
47
+ ID : Sha1ObjectFormat .EmptyObjectID (),
48
+ Object : MustIDFromString ("7cdf42c0b1cc763ab7e4c33c47a24e27c66bfccc" ),
49
+ Type : "commit" ,
50
+ Tagger :
& Signature {
Name :
"Lucas Michot" ,
Email :
"[email protected] " ,
When :
time .
Unix (
1484553735 ,
0 ).
In (
time .
FixedZone (
"" ,
3600 ))},
51
+ Message : "test message\n o\n \n ono" ,
52
+ Signature : nil ,
53
+ },
54
+ },
55
+ {
56
+ data : `object 7cdf42c0b1cc763ab7e4c33c47a24e27c66bfaaa
57
+ type commit
58
+ tag v0
59
+ tagger dummy user <[email protected] > 1484491741 +0100
60
+
61
+ dummy message
62
+ -----BEGIN SSH SIGNATURE-----
63
+ dummy signature
64
+ -----END SSH SIGNATURE-----
65
+ ` ,
66
+ expected : Tag {
67
+ Name : "" ,
68
+ ID : Sha1ObjectFormat .EmptyObjectID (),
69
+ Object : MustIDFromString ("7cdf42c0b1cc763ab7e4c33c47a24e27c66bfaaa" ),
70
+ Type : "commit" ,
71
+ Tagger :
& Signature {
Name :
"dummy user" ,
Email :
"[email protected] " ,
When :
time .
Unix (
1484491741 ,
0 ).
In (
time .
FixedZone (
"" ,
3600 ))},
72
+ Message : "dummy message" ,
73
+ Signature : & CommitSignature {
74
+ Signature : `-----BEGIN SSH SIGNATURE-----
75
+ dummy signature
76
+ -----END SSH SIGNATURE-----` ,
77
+ Payload : `object 7cdf42c0b1cc763ab7e4c33c47a24e27c66bfaaa
78
+ type commit
79
+ tag v0
80
+ tagger dummy user <[email protected] > 1484491741 +0100
81
+
82
+ dummy message` ,
83
+ },
84
+ },
85
+ },
49
86
}
50
87
51
88
for _ , test := range testData {
52
- tag , err := parseTagData (Sha1ObjectFormat , test .data )
89
+ tag , err := parseTagData (Sha1ObjectFormat , [] byte ( test .data ) )
53
90
assert .NoError (t , err )
54
- assert .EqualValues (t , test .tag .ID , tag .ID )
55
- assert .EqualValues (t , test .tag .Object , tag .Object )
56
- assert .EqualValues (t , test .tag .Name , tag .Name )
57
- assert .EqualValues (t , test .tag .Message , tag .Message )
58
- assert .EqualValues (t , test .tag .Type , tag .Type )
59
- if test .tag .Signature != nil && assert .NotNil (t , tag .Signature ) {
60
- assert .EqualValues (t , test .tag .Signature .Signature , tag .Signature .Signature )
61
- assert .EqualValues (t , test .tag .Signature .Payload , tag .Signature .Payload )
62
- } else {
63
- assert .Nil (t , tag .Signature )
64
- }
65
- if test .tag .Tagger != nil && assert .NotNil (t , tag .Tagger ) {
66
- assert .EqualValues (t , test .tag .Tagger .Name , tag .Tagger .Name )
67
- assert .EqualValues (t , test .tag .Tagger .Email , tag .Tagger .Email )
68
- assert .EqualValues (t , test .tag .Tagger .When .Unix (), tag .Tagger .When .Unix ())
69
- } else {
70
- assert .Nil (t , tag .Tagger )
71
- }
91
+ assert .Equal (t , test .expected , * tag )
72
92
}
93
+
94
+ tag , err := parseTagData (Sha1ObjectFormat , []byte ("type commit\n \n foo\n -----BEGIN SSH SIGNATURE-----\n corrupted..." ))
95
+ assert .NoError (t , err )
96
+ assert .Equal (t , "foo\n -----BEGIN SSH SIGNATURE-----\n corrupted..." , tag .Message )
73
97
}
0 commit comments