@@ -20,72 +20,67 @@ func TestLocalFileWriterWrite(t *testing.T) {
20
20
checkErr func (require.TestingT , error , ... interface {})
21
21
preserveFileTime bool
22
22
//nolint:revive // support older versions
23
- checkTime func (require.TestingT , interface {}, interface {}, ... interface {})
24
- result * ReadResult
23
+ checkTime func (require.TestingT , interface {}, interface {}, ... interface {})
24
+ editionID string
25
+ reader io.ReadCloser
26
+ newMD5 string
27
+ lastModified time.Time
25
28
}{
26
29
{
27
30
description : "success" ,
28
31
checkErr : require .NoError ,
29
32
preserveFileTime : true ,
30
33
checkTime : require .Equal ,
31
- result : & ReadResult {
32
- reader : io .NopCloser (strings .NewReader ("database content" )),
33
- EditionID : "GeoIP2-City" ,
34
- OldHash : "" ,
35
- NewHash : "cfa36ddc8279b5483a5aa25e9a6151f4" ,
36
- ModifiedAt : testTime ,
37
- },
34
+ editionID : "GeoIP2-City" ,
35
+ reader : io .NopCloser (strings .NewReader ("database content" )),
36
+ newMD5 : "cfa36ddc8279b5483a5aa25e9a6151f4" ,
37
+ lastModified : testTime ,
38
38
}, {
39
39
description : "hash does not match" ,
40
40
checkErr : require .Error ,
41
41
preserveFileTime : true ,
42
42
checkTime : require .Equal ,
43
- result : & ReadResult {
44
- reader : io .NopCloser (strings .NewReader ("database content" )),
45
- EditionID : "GeoIP2-City" ,
46
- OldHash : "" ,
47
- NewHash : "badhash" ,
48
- ModifiedAt : testTime ,
49
- },
43
+ editionID : "GeoIP2-City" ,
44
+ reader : io .NopCloser (strings .NewReader ("database content" )),
45
+ newMD5 : "badhash" ,
46
+ lastModified : testTime ,
50
47
}, {
51
48
description : "hash case does not matter" ,
52
49
checkErr : require .NoError ,
53
50
preserveFileTime : true ,
54
51
checkTime : require .Equal ,
55
- result : & ReadResult {
56
- reader : io .NopCloser (strings .NewReader ("database content" )),
57
- EditionID : "GeoIP2-City" ,
58
- OldHash : "" ,
59
- NewHash : "cfa36ddc8279b5483a5aa25e9a6151f4" ,
60
- ModifiedAt : testTime ,
61
- },
52
+ editionID : "GeoIP2-City" ,
53
+ reader : io .NopCloser (strings .NewReader ("database content" )),
54
+ newMD5 : "cfa36ddc8279b5483a5aa25e9a6151f4" ,
55
+ lastModified : testTime ,
62
56
}, {
63
57
description : "do not preserve file modification time" ,
64
58
checkErr : require .NoError ,
65
59
preserveFileTime : false ,
66
60
checkTime : require .NotEqual ,
67
- result : & ReadResult {
68
- reader : io .NopCloser (strings .NewReader ("database content" )),
69
- EditionID : "GeoIP2-City" ,
70
- OldHash : "" ,
71
- NewHash : "CFA36DDC8279B5483A5AA25E9A6151F4" ,
72
- ModifiedAt : testTime ,
73
- },
61
+ editionID : "GeoIP2-City" ,
62
+ reader : io .NopCloser (strings .NewReader ("database content" )),
63
+ newMD5 : "CFA36DDC8279B5483A5AA25E9A6151F4" ,
64
+ lastModified : testTime ,
74
65
},
75
66
}
76
67
77
68
for _ , test := range tests {
78
69
t .Run (test .description , func (t * testing.T ) {
79
70
tempDir := t .TempDir ()
80
- defer test .result .reader .Close ()
81
71
82
72
fw , err := NewLocalFileWriter (tempDir , test .preserveFileTime , false )
83
73
require .NoError (t , err )
84
74
85
- err = fw .Write (test .result )
75
+ err = fw .Write (
76
+ test .editionID ,
77
+ test .reader ,
78
+ test .newMD5 ,
79
+ test .lastModified ,
80
+ )
86
81
test .checkErr (t , err )
87
82
if err == nil {
88
- database , err := os .Stat (fw .getFilePath (test .result . EditionID ))
83
+ database , err := os .Stat (fw .getFilePath (test .editionID ))
89
84
require .NoError (t , err )
90
85
91
86
test .checkTime (t , database .ModTime ().UTC (), testTime )
@@ -96,28 +91,23 @@ func TestLocalFileWriterWrite(t *testing.T) {
96
91
97
92
// TestLocalFileWriterGetHash tests functionality of the LocalFileWriter.GetHash method.
98
93
func TestLocalFileWriterGetHash (t * testing.T ) {
99
- result := & ReadResult {
100
- reader : io .NopCloser (strings .NewReader ("database content" )),
101
- EditionID : "GeoIP2-City" ,
102
- OldHash : "" ,
103
- NewHash : "cfa36ddc8279b5483a5aa25e9a6151f4" ,
104
- ModifiedAt : time.Time {},
105
- }
94
+ editionID := "GeoIP2-City"
95
+ reader := io .NopCloser (strings .NewReader ("database content" ))
96
+ newMD5 := "cfa36ddc8279b5483a5aa25e9a6151f4"
97
+ lastModified := time.Time {}
106
98
107
99
tempDir := t .TempDir ()
108
100
109
- defer result .reader .Close ()
110
-
111
101
fw , err := NewLocalFileWriter (tempDir , false , false )
112
102
require .NoError (t , err )
113
103
114
- err = fw .Write (result )
104
+ err = fw .Write (editionID , reader , newMD5 , lastModified )
115
105
require .NoError (t , err )
116
106
117
107
// returns the correct hash for an existing database.
118
- hash , err := fw .GetHash (result . EditionID )
108
+ hash , err := fw .GetHash (editionID )
119
109
require .NoError (t , err )
120
- require .Equal (t , hash , result . NewHash )
110
+ require .Equal (t , hash , newMD5 )
121
111
122
112
// returns a zero hash for a non existing edition.
123
113
hash , err = fw .GetHash ("NewEdition" )
0 commit comments