@@ -110,6 +110,23 @@ void main() {
110
110
await store.getFile (fileUrl);
111
111
expect (await store.getFileFromMemory (fileUrl), isNotNull);
112
112
});
113
+
114
+ test (
115
+ 'Store.memoryCacheContainsKey should return true if the key is present in the memory cache' ,
116
+ () async {
117
+ var config = createTestConfig ();
118
+ var store = CacheStore (config);
119
+
120
+ var cacheObject = CacheObject (
121
+ 'baseflow.com/test.png' ,
122
+ relativePath: 'testimage.png' ,
123
+ validTill: clock.now ().add (const Duration (days: 7 )),
124
+ );
125
+ await store.putFile (cacheObject);
126
+
127
+ expect (store.memoryCacheContainsKey ('baseflow.com/test.png' ), true );
128
+ expect (store.memoryCacheContainsKey ('unseen-file' ), false );
129
+ });
113
130
});
114
131
115
132
group ('Storing files in store' , () {
@@ -127,9 +144,7 @@ void main() {
127
144
verify (config.repo.updateOrInsert (cacheObject)).called (1 );
128
145
});
129
146
130
- test (
131
- 'Store should store fileinfo in repo and id should be available afterwards' ,
132
- () async {
147
+ test ('Store should store fileinfo in repo and id should be available afterwards' , () async {
133
148
var config = createTestConfig ();
134
149
135
150
var cacheObject = CacheObject (
@@ -174,8 +189,7 @@ void main() {
174
189
);
175
190
await store.removeCachedFile (cacheObject);
176
191
177
- verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id))))
178
- .called (1 );
192
+ verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id)))).called (1 );
179
193
});
180
194
181
195
test ('Store should remove file over capacity' , () async {
@@ -191,20 +205,16 @@ void main() {
191
205
);
192
206
await config.returnsFile ('testimage.png' );
193
207
194
- when (config.mockRepo.getObjectsOverCapacity (any))
195
- .thenAnswer ((_) => Future .value ([cacheObject]));
196
- when (config.mockRepo.getOldObjects (any))
197
- .thenAnswer ((_) => Future .value ([]));
198
- when (config.mockRepo.get ('baseflow.com/test.png' ))
199
- .thenAnswer ((_) => Future .value (cacheObject));
208
+ when (config.mockRepo.getObjectsOverCapacity (any)).thenAnswer ((_) => Future .value ([cacheObject]));
209
+ when (config.mockRepo.getOldObjects (any)).thenAnswer ((_) => Future .value ([]));
210
+ when (config.mockRepo.get ('baseflow.com/test.png' )).thenAnswer ((_) => Future .value (cacheObject));
200
211
201
212
expect (await store.getFile ('baseflow.com/test.png' ), isNotNull);
202
213
203
214
await untilCalled (config.mockRepo.deleteAll (any));
204
215
205
216
verify (config.mockRepo.getObjectsOverCapacity (any)).called (1 );
206
- verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id))))
207
- .called (1 );
217
+ verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id)))).called (1 );
208
218
});
209
219
210
220
test ('Store should remove file over that are too old' , () async {
@@ -220,20 +230,16 @@ void main() {
220
230
validTill: clock.now ().add (const Duration (days: 7 )),
221
231
);
222
232
223
- when (config.mockRepo.getObjectsOverCapacity (any))
224
- .thenAnswer ((_) => Future .value ([]));
225
- when (config.mockRepo.getOldObjects (any))
226
- .thenAnswer ((_) => Future .value ([cacheObject]));
227
- when (config.mockRepo.get ('baseflow.com/test.png' ))
228
- .thenAnswer ((_) => Future .value (cacheObject));
233
+ when (config.mockRepo.getObjectsOverCapacity (any)).thenAnswer ((_) => Future .value ([]));
234
+ when (config.mockRepo.getOldObjects (any)).thenAnswer ((_) => Future .value ([cacheObject]));
235
+ when (config.mockRepo.get ('baseflow.com/test.png' )).thenAnswer ((_) => Future .value (cacheObject));
229
236
230
237
expect (await store.getFile ('baseflow.com/test.png' ), isNotNull);
231
238
232
239
await untilCalled (config.mockRepo.deleteAll (any));
233
240
234
241
verify (config.mockRepo.getOldObjects (any)).called (1 );
235
- verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id))))
236
- .called (1 );
242
+ verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id)))).called (1 );
237
243
});
238
244
239
245
test ('Store should remove file old and over capacity' , () async {
@@ -249,12 +255,9 @@ void main() {
249
255
validTill: clock.now ().add (const Duration (days: 7 )),
250
256
);
251
257
252
- when (config.mockRepo.getObjectsOverCapacity (any))
253
- .thenAnswer ((_) => Future .value ([cacheObject]));
254
- when (config.mockRepo.getOldObjects (any))
255
- .thenAnswer ((_) => Future .value ([cacheObject]));
256
- when (config.mockRepo.get ('baseflow.com/test.png' ))
257
- .thenAnswer ((_) => Future .value (cacheObject));
258
+ when (config.mockRepo.getObjectsOverCapacity (any)).thenAnswer ((_) => Future .value ([cacheObject]));
259
+ when (config.mockRepo.getOldObjects (any)).thenAnswer ((_) => Future .value ([cacheObject]));
260
+ when (config.mockRepo.get ('baseflow.com/test.png' )).thenAnswer ((_) => Future .value (cacheObject));
258
261
259
262
expect (await store.getFile ('baseflow.com/test.png' ), isNotNull);
260
263
@@ -263,8 +266,7 @@ void main() {
263
266
264
267
verify (config.mockRepo.getObjectsOverCapacity (any)).called (1 );
265
268
verify (config.mockRepo.getOldObjects (any)).called (1 );
266
- verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id))))
267
- .called (1 );
269
+ verify (config.mockRepo.deleteAll (argThat (contains (cacheObject.id)))).called (1 );
268
270
});
269
271
270
272
test ('Store should recheck cache info when file is removed' , () async {
@@ -280,20 +282,16 @@ void main() {
280
282
validTill: clock.now ().add (const Duration (days: 7 )),
281
283
);
282
284
283
- when (config.mockRepo.getObjectsOverCapacity (any))
284
- .thenAnswer ((_) => Future .value ([]));
285
- when (config.mockRepo.getOldObjects (any))
286
- .thenAnswer ((_) => Future .value ([]));
287
- when (config.mockRepo.get ('baseflow.com/test.png' ))
288
- .thenAnswer ((_) => Future .value (cacheObject));
285
+ when (config.mockRepo.getObjectsOverCapacity (any)).thenAnswer ((_) => Future .value ([]));
286
+ when (config.mockRepo.getOldObjects (any)).thenAnswer ((_) => Future .value ([]));
287
+ when (config.mockRepo.get ('baseflow.com/test.png' )).thenAnswer ((_) => Future .value (cacheObject));
289
288
290
289
expect (await store.getFile ('baseflow.com/test.png' ), isNotNull);
291
290
await file.delete ();
292
291
expect (await store.getFile ('baseflow.com/test.png' ), isNull);
293
292
});
294
293
295
- test ('Store should not remove files that are not old or over capacity' ,
296
- () async {
294
+ test ('Store should not remove files that are not old or over capacity' , () async {
297
295
var config = createTestConfig ();
298
296
var store = CacheStore (config);
299
297
store.cleanupRunMinInterval = const Duration (milliseconds: 1 );
@@ -306,12 +304,9 @@ void main() {
306
304
validTill: clock.now ().add (const Duration (days: 7 )),
307
305
);
308
306
309
- when (config.mockRepo.getObjectsOverCapacity (any))
310
- .thenAnswer ((_) => Future .value ([]));
311
- when (config.mockRepo.getOldObjects (any))
312
- .thenAnswer ((_) => Future .value ([]));
313
- when (config.mockRepo.get ('baseflow.com/test.png' ))
314
- .thenAnswer ((_) => Future .value (cacheObject));
307
+ when (config.mockRepo.getObjectsOverCapacity (any)).thenAnswer ((_) => Future .value ([]));
308
+ when (config.mockRepo.getOldObjects (any)).thenAnswer ((_) => Future .value ([]));
309
+ when (config.mockRepo.get ('baseflow.com/test.png' )).thenAnswer ((_) => Future .value (cacheObject));
315
310
316
311
expect (await store.getFile ('baseflow.com/test.png' ), isNotNull);
317
312
@@ -346,13 +341,11 @@ void main() {
346
341
validTill: clock.now ().add (const Duration (days: 7 )),
347
342
);
348
343
349
- when (config.mockRepo.getAllObjects ())
350
- .thenAnswer ((_) => Future .value ([co1, co2, co3]));
344
+ when (config.mockRepo.getAllObjects ()).thenAnswer ((_) => Future .value ([co1, co2, co3]));
351
345
352
346
await store.emptyCache ();
353
347
354
- verify (config.mockRepo
355
- .deleteAll (argThat (containsAll ([co1.id, co2.id, co3.id])))).called (1 );
348
+ verify (config.mockRepo.deleteAll (argThat (containsAll ([co1.id, co2.id, co3.id])))).called (1 );
356
349
});
357
350
});
358
351
}
0 commit comments