1 USING: cache tools.test accessors destructors kernel assocs
5 TUPLE: mock-disposable < disposable n ;
7 : <mock-disposable> ( n -- mock-disposable )
8 mock-disposable new-disposable swap >>n ;
10 M: mock-disposable dispose* drop ;
12 { } [ <cache-assoc> "cache" set ] unit-test
14 { 0 } [ "cache" get assoc-size ] unit-test
16 { } [ "cache" get 2 >>max-age drop ] unit-test
18 { } [ 1 <mock-disposable> dup "a" set 2 "cache" get set-at ] unit-test
20 { 1 } [ "cache" get assoc-size ] unit-test
22 { } [ "cache" get purge-cache ] unit-test
24 { } [ 2 <mock-disposable> 3 "cache" get set-at ] unit-test
26 { 2 } [ "cache" get assoc-size ] unit-test
28 { } [ "cache" get purge-cache ] unit-test
30 { 1 } [ "cache" get assoc-size ] unit-test
32 { } [ 3 <mock-disposable> dup "b" set 4 "cache" get set-at ] unit-test
34 { 2 } [ "cache" get assoc-size ] unit-test
36 { } [ "cache" get purge-cache ] unit-test
38 { 1 } [ "cache" get assoc-size ] unit-test
40 { f } [ 2 "cache" get key? ] unit-test
42 { 3 } [ 4 "cache" get at n>> ] unit-test
44 { t } [ "a" get disposed>> ] unit-test
46 { f } [ "b" get disposed>> ] unit-test
48 { } [ "cache" get clear-assoc ] unit-test
50 { t } [ "b" get disposed>> ] unit-test