View Javadoc

1   package com.atlassian.cache.hazelcast;
2   
3   import com.atlassian.cache.AbstractLazyReferenceTest;
4   import com.atlassian.cache.CacheSettingsBuilder;
5   import com.atlassian.cache.CachedReference;
6   import org.junit.Before;
7   import org.junit.ClassRule;
8   import org.junit.runner.RunWith;
9   import org.mockito.runners.MockitoJUnitRunner;
10  
11  import static org.hamcrest.core.IsEqual.equalTo;
12  import static org.junit.Assert.assertThat;
13  
14  @RunWith (MockitoJUnitRunner.class)
15  public class HazelcastRemoteCachedReferenceTest extends AbstractLazyReferenceTest
16  {
17      @ClassRule
18      public static InitOnceHazelcastCluster cluster = InitOnceHazelcastCluster.getInstance();
19  
20      @Before
21      public void setUp() throws Exception
22      {
23          cluster.reset();
24          factory = HazelcastTestSupport.createDistributedFactory(cluster.getNode(0));
25      }
26  
27      @Override
28      public void testRemoveTwice() throws Exception
29      {
30          //TODO: Hazelcast passes the CACHE-108 test but does not need to update the reference in the same way that
31          //the guava and ehcache caches do.
32          CachedReference<Long> ref = makeReference();
33  
34          assertThat(ref.get(), equalTo(100L));
35          assertThat(ref.get(), equalTo(100L));
36  
37          ref.reset();
38          ref.reset();
39  
40          // This should have been recalculated (twice as reset will get the value)
41          assertThat(ref.get(), equalTo(101L));
42          assertThat(ref.get(), equalTo(101L));
43  
44          ref.reset();
45  
46          // This should have been recalculated
47          assertThat(ref.get(), equalTo(102L));
48          assertThat(ref.get(), equalTo(102L));
49  
50      }
51  
52      @Override
53      protected CacheSettingsBuilder settingsBuilder()
54      {
55          return new CacheSettingsBuilder().remote();
56      }
57  }