@@ -91,226 +91,205 @@ func TestCacheHandler(t *testing.T) {
9191 }{
9292 {
9393 name : "cacheLookup error should still forward request to downstream and store response" ,
94- handler : handler {
95- cfg : config.CacheConfig {
96- DownstreamHost : mustURL (t , downstreamServer .URL ),
97- },
98- cacher : func () Cacher {
94+ handler : newCacheHandler (
95+ func () Cacher {
9996 mock := NewMockCacher (ctrl )
10097 mock .EXPECT ().LookUp (gomock .Any (), gomock .Any ()).Return (nil , errors .New ("test-error" ))
10198 mock .EXPECT ().Store (gomock .Any (), gomock .Any (), gomock .Any ())
102-
10399 return mock
104100 }(),
105- metricsCollector : func () MetricsCollector {
101+ func () MetricsCollector {
106102 mock := NewMockMetricsCollector (ctrl )
107103 mock .EXPECT ().CacheMiss ("GET" , proxied )
108-
109104 return mock
110105 }(),
111- },
112-
106+ nil ,
107+ config.CacheConfig {
108+ DownstreamHost : mustURL (t , downstreamServer .URL ),
109+ },
110+ ),
113111 req : mustRequest (t , endpoint , "" ),
114112 want : proxied ,
115113 },
116114 {
117115 name : "cache miss" ,
118- handler : handler {
119- cfg : config.CacheConfig {
120- DownstreamHost : mustURL (t , downstreamServer .URL ),
121- },
122- cacher : func () Cacher {
116+ handler : newCacheHandler (
117+ func () Cacher {
123118 mock := NewMockCacher (ctrl )
124119 mock .EXPECT ().LookUp (gomock .Any (), gomock .Any ()).Return (nil , nil ).Times (1 )
125120 mock .EXPECT ().Store (gomock .Any (), gomock .Any (), newResponseMatcher (proxied , nil )).Return (nil ).Times (1 )
126-
127121 return mock
128122 }(),
129- metricsCollector : func () MetricsCollector {
123+ func () MetricsCollector {
130124 mock := NewMockMetricsCollector (ctrl )
131125 mock .EXPECT ().CacheMiss ("GET" , proxied ).Times (1 )
132-
133126 return mock
134127 }(),
135- },
136-
128+ nil ,
129+ config.CacheConfig {
130+ DownstreamHost : mustURL (t , downstreamServer .URL ),
131+ },
132+ ),
137133 req : mustRequest (t , endpoint , "" ),
138134 want : proxied ,
139135 },
140136 {
141137 name : "websockets will not be stored in cache" ,
142- handler : handler {
143- cfg : config.CacheConfig {
144- DownstreamHost : mustURL (t , downstreamServer .URL ),
145- },
146- cacher : func () Cacher {
138+ handler : newCacheHandler (
139+ func () Cacher {
147140 mock := NewMockCacher (ctrl )
148141 mock .EXPECT ().LookUp (nil , nil ).Times (0 )
149142 mock .EXPECT ().Store (nil , nil , nil ).Times (0 )
150-
151143 return mock
152144 }(),
153- metricsCollector : func () MetricsCollector {
145+ func () MetricsCollector {
154146 mock := NewMockMetricsCollector (ctrl )
155147 mock .EXPECT ().CacheMiss (nil , nil ).Times (0 )
156-
157148 return mock
158149 }(),
159- },
160-
150+ nil ,
151+ config.CacheConfig {
152+ DownstreamHost : mustURL (t , downstreamServer .URL ),
153+ },
154+ ),
161155 req : webSocketReq ,
162156 want : proxied ,
163157 },
164158 {
165159 name : "POST requests will not be stored in cache" ,
166- handler : handler {
167- cfg : config.CacheConfig {
168- DownstreamHost : mustURL (t , downstreamServer .URL ),
169- },
170- cacher : func () Cacher {
160+ handler : newCacheHandler (
161+ func () Cacher {
171162 mock := NewMockCacher (ctrl )
172163 mock .EXPECT ().LookUp (nil , nil ).Times (0 )
173164 mock .EXPECT ().Store (nil , nil , nil ).Times (0 )
174-
175165 return mock
176166 }(),
177- metricsCollector : func () MetricsCollector {
167+ func () MetricsCollector {
178168 mock := NewMockMetricsCollector (ctrl )
179169 mock .EXPECT ().CacheMiss (nil , nil ).Times (0 )
180-
181170 return mock
182171 }(),
183- },
184-
172+ nil ,
173+ config.CacheConfig {
174+ DownstreamHost : mustURL (t , downstreamServer .URL ),
175+ },
176+ ),
185177 req : mustRequest (t , endpoint , "POST" ),
186178 want : proxied ,
187179 },
188180 {
189181 name : "PUT requests will not be stored in cache" ,
190- handler : handler {
191- cfg : config.CacheConfig {
192- DownstreamHost : mustURL (t , downstreamServer .URL ),
193- },
194- cacher : func () Cacher {
182+ handler : newCacheHandler (
183+ func () Cacher {
195184 mock := NewMockCacher (ctrl )
196185 mock .EXPECT ().LookUp (nil , nil ).Times (0 )
197186 mock .EXPECT ().Store (nil , nil , nil ).Times (0 )
198-
199187 return mock
200188 }(),
201- metricsCollector : func () MetricsCollector {
189+ func () MetricsCollector {
202190 mock := NewMockMetricsCollector (ctrl )
203191 mock .EXPECT ().CacheMiss (nil , nil ).Times (0 )
204-
205192 return mock
206193 }(),
207- },
208-
194+ nil ,
195+ config.CacheConfig {
196+ DownstreamHost : mustURL (t , downstreamServer .URL ),
197+ },
198+ ),
209199 req : mustRequest (t , endpoint , "PUT" ),
210200 want : proxied ,
211201 },
212202 {
213203 name : "PATCH requests will not be stored in cache" ,
214- handler : handler {
215- cfg : config.CacheConfig {
216- DownstreamHost : mustURL (t , downstreamServer .URL ),
217- },
218- cacher : func () Cacher {
204+ handler : newCacheHandler (
205+ func () Cacher {
219206 mock := NewMockCacher (ctrl )
220207 mock .EXPECT ().LookUp (nil , nil ).Times (0 )
221208 mock .EXPECT ().Store (nil , nil , nil ).Times (0 )
222-
223209 return mock
224210 }(),
225- metricsCollector : func () MetricsCollector {
211+ func () MetricsCollector {
226212 mock := NewMockMetricsCollector (ctrl )
227213 mock .EXPECT ().CacheMiss (nil , nil ).Times (0 )
228-
229214 return mock
230215 }(),
231- },
232-
216+ nil ,
217+ config.CacheConfig {
218+ DownstreamHost : mustURL (t , downstreamServer .URL ),
219+ },
220+ ),
233221 req : mustRequest (t , endpoint , "PATCH" ),
234222 want : proxied ,
235223 },
236224 {
237225 name : "DELETE requests will not be stored in cache" ,
238- handler : handler {
239- cfg : config.CacheConfig {
240- DownstreamHost : mustURL (t , downstreamServer .URL ),
241- },
242- cacher : func () Cacher {
226+ handler : newCacheHandler (
227+ func () Cacher {
243228 mock := NewMockCacher (ctrl )
244229 mock .EXPECT ().LookUp (nil , nil ).Times (0 )
245230 mock .EXPECT ().Store (nil , nil , nil ).Times (0 )
246-
247231 return mock
248232 }(),
249- metricsCollector : func () MetricsCollector {
233+ func () MetricsCollector {
250234 mock := NewMockMetricsCollector (ctrl )
251235 mock .EXPECT ().CacheMiss (nil , nil ).Times (0 )
252-
253236 return mock
254237 }(),
255- },
256-
238+ nil ,
239+ config.CacheConfig {
240+ DownstreamHost : mustURL (t , downstreamServer .URL ),
241+ },
242+ ),
257243 req : mustRequest (t , endpoint , "DELETE" ),
258244 want : proxied ,
259245 },
260246 {
261247 name : "statusCode > 500 from downstream will not be stored in cache" ,
262- handler : handler {
263- cfg : config.CacheConfig {
264- DownstreamHost : mustURL (t , downstreamServerNok .URL ),
265- },
266- cacher : func () Cacher {
248+ handler : newCacheHandler (
249+ func () Cacher {
267250 mock := NewMockCacher (ctrl )
268251 mock .EXPECT ().LookUp (gomock .Any (), gomock .Any ()).Return (nil , nil ).Times (1 )
269252 mock .EXPECT ().Store (nil , nil , nil ).Times (0 )
270-
271253 return mock
272254 }(),
273- metricsCollector : func () MetricsCollector {
255+ func () MetricsCollector {
274256 mock := NewMockMetricsCollector (ctrl )
275257 mock .EXPECT ().CacheMiss ("GET" , http .StatusInternalServerError ).Times (1 )
276-
277258 return mock
278259 }(),
279- },
280-
260+ nil ,
261+ config.CacheConfig {
262+ DownstreamHost : mustURL (t , downstreamServerNok .URL ),
263+ },
264+ ),
281265 req : mustRequest (t , "/status/500?q=1" , "" ),
282266 want : http .StatusInternalServerError ,
283267 },
284268 {
285269 name : "cache hit" ,
286- handler : handler {
287- cfg : config.CacheConfig {
288- DownstreamHost : mustURL (t , downstreamServer .URL ),
289- },
290- worker : func () Worker {
291- mock := NewMockWorker (ctrl )
292- mock .EXPECT ().Start (gomock .Any (), gomock .Any ())
293-
294- return mock
295- }(),
296- cacher : func () Cacher {
270+ handler : newCacheHandler (
271+ func () Cacher {
297272 mock := NewMockCacher (ctrl )
298273 mock .EXPECT ().LookUp (gomock .Any (), gomock .Any ()).Return (& model.Response {
299274 Status : http .StatusOK ,
300275 Body : []byte ("hello" ),
301276 }, nil )
302-
303277 return mock
304278 }(),
305- metricsCollector : func () MetricsCollector {
279+ func () MetricsCollector {
306280 mock := NewMockMetricsCollector (ctrl )
307281 mock .EXPECT ().CacheHit ("GET" , http .StatusOK )
308- // mock.EXPECT().CacheMiss("GET", proxied)
309-
310282 return mock
311283 }(),
312- },
313-
284+ func () Worker {
285+ mock := NewMockWorker (ctrl )
286+ mock .EXPECT ().Start (gomock .Any (), gomock .Any ())
287+ return mock
288+ }(),
289+ config.CacheConfig {
290+ DownstreamHost : mustURL (t , downstreamServer .URL ),
291+ },
292+ ),
314293 req : mustRequest (t , endpoint , "" ),
315294 want : http .StatusOK ,
316295 },
0 commit comments