@@ -15,12 +15,15 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
1515 setup do
1616 cache = :test_cache
1717 cache_ttl = :test_cache_ttl
18+ cache_simple = :cache_simple
1819
1920 on_exit fn ->
2021 Mnesia . delete_table ( cache )
2122 Mnesia . delete_table ( cache_ttl )
23+ Mnesia . delete_table ( cache_simple )
2224 end
2325
26+ cache_simple_options = [ persistence: :memory ]
2427 cache_options = [ size: 1 , ttl: nil , persistence: :memory ]
2528 cache_ttl_options = [ size: 1 , ttl: Timer . seconds ( 1 ) , persistence: :memory ]
2629
@@ -32,18 +35,24 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
3235 start: { MessageCache ,
3336 :start_link ,
3437 [ cache_ttl , cache_ttl_options ] } } )
38+ start_supervised! ( % { id: cache_simple ,
39+ start: { MessageCache ,
40+ :start_link ,
41+ [ cache_simple , cache_simple_options ] } } )
3542
36- % { cache: cache , cache_ttl: cache_ttl }
43+ % { cache: cache , cache_ttl: cache_ttl , cache_simple: cache_simple }
3744 end
3845
39- test "basic insertion and lookup" , % { cache: cache , cache_ttl: _ } do
46+ test "basic insertion and lookup" ,
47+ % { cache: cache , cache_ttl: _ , cache_simple: _ } do
4048 assert MessageCache . member? ( cache , "foo" ) == false
4149
4250 MessageCache . put ( cache , "foo" )
4351 assert MessageCache . member? ( cache , "foo" ) == true
4452 end
4553
46- test "TTL at insertion" , % { cache: cache , cache_ttl: _ } do
54+ test "TTL at insertion" ,
55+ % { cache: cache , cache_ttl: _ , cache_simple: _ } do
4756 assert MessageCache . member? ( cache , "foo" ) == false
4857
4958 MessageCache . put ( cache , "foo" , Timer . seconds ( 1 ) )
@@ -54,7 +63,8 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
5463 assert MessageCache . member? ( cache , "foo" ) == false
5564 end
5665
57- test "TTL at table creation" , % { cache: _ , cache_ttl: cache } do
66+ test "TTL at table creation" ,
67+ % { cache: _ , cache_ttl: cache , cache_simple: _ } do
5868 assert MessageCache . member? ( cache , "foo" ) == false
5969
6070 MessageCache . put ( cache , "foo" )
@@ -65,7 +75,8 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
6575 assert MessageCache . member? ( cache , "foo" ) == false
6676 end
6777
68- test "entries are deleted after TTL" , % { cache: cache , cache_ttl: _ } do
78+ test "entries are deleted after TTL" ,
79+ % { cache: cache , cache_ttl: _ , cache_simple: _ } do
6980 assert MessageCache . member? ( cache , "foo" ) == false
7081
7182 MessageCache . put ( cache , "foo" , Timer . seconds ( 1 ) )
@@ -76,7 +87,8 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
7687 assert Mnesia . transaction ( fn -> Mnesia . all_keys ( cache ) end ) == { :atomic , [ ] }
7788 end
7889
79- test "entries are deleted if cache is full" , % { cache: cache , cache_ttl: _ } do
90+ test "entries are deleted if cache is full" ,
91+ % { cache: cache , cache_ttl: _ , cache_simple: _ } do
8092 assert MessageCache . member? ( cache , "foo" ) == false
8193 assert MessageCache . member? ( cache , "bar" ) == false
8294
@@ -88,7 +100,7 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
88100 assert MessageCache . member? ( cache , "foo" ) == false
89101 end
90102
91- test "cache entry deletion" , % { cache: cache , cache_ttl: _ } do
103+ test "cache entry deletion" , % { cache: cache , cache_ttl: _ , cache_simple: _ } do
92104 MessageCache . put ( cache , "foo" )
93105 assert MessageCache . member? ( cache , "foo" ) == true
94106
@@ -97,13 +109,21 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
97109 assert MessageCache . member? ( cache , "foo" ) == false
98110 end
99111
100- test "cache information" , % { cache: cache , cache_ttl: _ } do
112+ test "cache information" ,
113+ % { cache: cache , cache_ttl: _ , cache_simple: _ } do
101114 MessageCache . put ( cache , "foo" )
102115
103- assert MessageCache . info ( cache ) == [ size: 1 , entries: 1 ]
116+ [ size: 1 , bytes: _ , entries: 1 ] = MessageCache . info ( cache )
117+ end
118+
119+ test "simple cache information" ,
120+ % { cache: _ , cache_ttl: _ , cache_simple: cache_simple } do
121+ MessageCache . put ( cache_simple , "foo" )
122+
123+ [ bytes: _ , entries: 1 ] = MessageCache . info ( cache_simple )
104124 end
105125
106- test "flush the cache" , % { cache: cache , cache_ttl: _ } do
126+ test "flush the cache" , % { cache: cache , cache_ttl: _ , cache_simple: _ } do
107127 MessageCache . put ( cache , "foo" )
108128 assert MessageCache . member? ( cache , "foo" ) == true
109129
@@ -112,7 +132,7 @@ defmodule RabbitMQ.MessageDeduplicationPlugin.Cache.Test do
112132 assert MessageCache . member? ( cache , "foo" ) == false
113133 end
114134
115- test "drop the cache" , % { cache: cache , cache_ttl: _ } do
135+ test "drop the cache" , % { cache: cache , cache_ttl: _ , cache_simple: _ } do
116136 :ok = MessageCache . drop ( cache )
117137
118138 assert Enum . member? ( Mnesia . system_info ( :tables ) , cache ) == false
0 commit comments