1 package com.atlassian.cache.memory;
2
3 import java.util.Collection;
4
5 import com.atlassian.cache.Cache;
6 import com.atlassian.cache.CachedReference;
7 import com.atlassian.cache.ManagedCache;
8 import com.atlassian.cache.Supplier;
9
10 import org.junit.Test;
11
12 import static org.hamcrest.MatcherAssert.assertThat;
13 import static org.hamcrest.Matchers.emptyIterable;
14 import static org.hamcrest.Matchers.is;
15 import static org.hamcrest.Matchers.notNullValue;
16 import static org.hamcrest.Matchers.nullValue;
17
18 public class MemoryCacheManagerTest
19 {
20 @Test
21 public void testFlushCaches()
22 {
23 MemoryCacheManager mcm = new MemoryCacheManager();
24 Cache<String, String> c = mcm.getCache("test-cache");
25 c.put("key", "value");
26
27 mcm.flushCaches();
28 assertThat(c.getKeys().size(), is(0));
29 }
30
31 @Test
32 public void testManagedCacheExists()
33 {
34 MemoryCacheManager mcm = new MemoryCacheManager();
35 Cache<String, String> c = mcm.getCache("test-cache");
36
37 ManagedCache mc = mcm.getManagedCache("test-cache");
38 assertThat(mc, notNullValue());
39 assertThat(mc.getName(), is("test-cache"));
40 }
41
42 @Test
43 public void testManagedCacheMissing()
44 {
45 MemoryCacheManager mcm = new MemoryCacheManager();
46 Cache<String, String> c = mcm.getCache("test-cache");
47
48 ManagedCache mc = mcm.getManagedCache("unknown-cache");
49 assertThat(mc, nullValue());
50 }
51
52 @Test
53 public void testManagedCachesEmpty()
54 {
55 MemoryCacheManager mcm = new MemoryCacheManager();
56
57 Collection<ManagedCache> mcs = mcm.getManagedCaches();
58 assertThat(mcs, notNullValue());
59 assertThat(mcs.size(), is(0));
60 assertThat(mcs, emptyIterable());
61 }
62
63 @Test
64 public void testManagedCachesExists()
65 {
66 MemoryCacheManager mcm = new MemoryCacheManager();
67 Cache<String, String> c = mcm.getCache("test-cache");
68
69 Collection<ManagedCache> mcs = mcm.getManagedCaches();
70 assertThat(mcs, notNullValue());
71 assertThat(mcs.size(), is(1));
72 assertThat(mcs.iterator().next().getName(), is("test-cache"));
73 }
74
75 @Test
76 public void testGetCaches()
77 {
78 MemoryCacheManager mcm = new MemoryCacheManager();
79 Cache<String, String> c = mcm.getCache("test-cache");
80 CachedReference<String> cref = mcm.getCachedReference("test-reference", new Supplier<String>()
81 {
82 @Override
83 public String get()
84 {
85 return "Never called";
86 }
87 });
88
89 Collection<Cache<?, ?>> caches = mcm.getCaches();
90 assertThat(caches, notNullValue());
91 assertThat(caches.size(), is(1));
92 assertThat(caches.iterator().next().getName(), is("test-cache"));
93 }
94 }