@@ -3,12 +3,54 @@ import 'package:json_cache/json_cache.dart';
33
44void main () {
55 group ('JsonCacheMem' , () {
6- test ('clear' , () async {
6+ const profKey = 'profile' ;
7+ const Map <String , dynamic > profData = < String , dynamic > {
8+ 'id' : 1 ,
9+ 'name' : 'John Due'
10+ };
11+ group ('clear, recover and refresh' , () {
12+ test ('default ctor' , () async {
13+ final JsonCacheMem inMemCache = JsonCacheMem (JsonCacheFake ());
14+ await inMemCache.refresh (profKey, profData);
15+ final result = await inMemCache.recover (profKey);
16+ expect (profData, result);
17+ await inMemCache.clear ();
18+ final mustBeNull = await inMemCache.recover (profKey);
19+ expect (mustBeNull, isNull);
20+ });
21+ test ('mem ctor' , () async {
22+ final Map <String , Map <String , dynamic >?> copy = {
23+ profKey: Map <String , dynamic >.of (profData)
24+ };
25+ final inMemCache = JsonCacheMem .mem (JsonCacheFake .mem (copy), copy);
26+ final result = await inMemCache.recover (profKey);
27+ expect (result, profData);
28+ await inMemCache.clear ();
29+ expect (copy.isEmpty, true );
30+ final mustBeNull = await inMemCache.recover (profKey);
31+ expect (mustBeNull, isNull);
32+ });
33+ });
34+
35+ test ('erase' , () async {
36+ const profKey = 'profile' ;
37+ const prefsKey = 'preferences' ;
38+ final prof = < String , dynamic > {'id' : 1 , 'name' : 'John Due' };
39+ final prefs = < String , dynamic > {
40+ 'preferences' : < String , dynamic > {
41+ 'theme' : 'dark' ,
42+ 'notifications' : {'enabled' : true }
43+ }
44+ };
745 final Map <String , Map <String , dynamic >> data = {
8- 'profile' : < String , dynamic > {'id' : 1 , 'name' : 'John Due' }
46+ profKey: prof,
47+ prefsKey: prefs
948 };
10- await JsonCacheMem .mem (JsonCacheFake .mem (data), data).clear ();
11- expect (data.isEmpty, true );
49+ expect (data.containsKey (profKey), true );
50+ expect (data.containsKey (prefsKey), true );
51+ await JsonCacheMem .mem (JsonCacheFake .mem (data), data).erase (prefsKey);
52+ expect (data.containsKey (prefsKey), false );
53+ expect (data.containsKey (profKey), true );
1254 });
1355 });
1456}
0 commit comments