View Javadoc

1   package com.atlassian.vcache.internal.test;
2   
3   import java.time.Duration;
4   
5   import com.atlassian.vcache.JvmCache;
6   import com.atlassian.vcache.JvmCacheSettings;
7   import com.atlassian.vcache.JvmCacheSettingsBuilder;
8   import com.atlassian.vcache.VCache;
9   
10  import org.junit.Test;
11  
12  import static org.hamcrest.Matchers.containsInAnyOrder;
13  import static org.hamcrest.Matchers.is;
14  import static org.junit.Assert.assertThat;
15  
16  /**
17   * Base test class for the {@link JvmCache}.
18   */
19  public abstract class AbstractJvmCacheTest extends AbstractLocalCacheOperationsTest
20  {
21      protected abstract JvmCache<String, String> createCache(String name, JvmCacheSettings settings);
22  
23      @Override
24      protected final JvmCache<String, String> createCache(String name)
25      {
26          final JvmCacheSettings settings = new JvmCacheSettingsBuilder().maxEntries(3).defaultTtl(Duration.ofSeconds(10)).build();
27          return createCache(name, settings);
28      }
29  
30      @Test
31      public void testGetName() throws Exception
32      {
33          final VCache namedCache = createCache("jvmcache");
34          assertThat(namedCache.getName(), is("jvmcache"));
35      }
36  
37      @SuppressWarnings("unchecked")
38      @Test
39      public void testKeys()
40      {
41          final JvmCache<String, String> mycache = createCache("ignored");
42  
43          assertThat(mycache.getKeys(), containsInAnyOrder());
44  
45          mycache.put("k1", "v1");
46  
47          assertThat(mycache.getKeys(), containsInAnyOrder("k1"));
48  
49          mycache.put("k2", "v2");
50  
51          assertThat(mycache.getKeys(), containsInAnyOrder("k1", "k2"));
52      }
53  
54      @Test
55      public void testSize()
56      {
57          final JvmCache<String, String> mycache = createCache("ignored");
58  
59          assertThat(mycache.getKeys().size(), is(0));
60  
61          mycache.put("k1", "v1");
62  
63          assertThat(mycache.getKeys().size(), is(1));
64  
65          mycache.put("k2", "v2");
66  
67          assertThat(mycache.getKeys().size(), is(2));
68  
69          mycache.put("k3", "v3");
70  
71          assertThat(mycache.getKeys().size(), is(3));
72  
73          mycache.put("k4", "v4");
74  
75          assertThat(mycache.getKeys().size(), is(3));
76  
77          mycache.remove("k1", "k2", "k3", "k4");
78  
79          assertThat(mycache.getKeys().size(), is(0));
80      }
81  }