View Javadoc

1   package com.atlassian.vcache.internal.core;
2   
3   import com.atlassian.vcache.ChangeRate;
4   import com.atlassian.vcache.JvmCacheSettings;
5   import com.atlassian.vcache.internal.JvmCacheDetails;
6   import com.atlassian.vcache.internal.VCacheCreationHandler;
7   import org.junit.Before;
8   import org.junit.Test;
9   import org.junit.runner.RunWith;
10  import org.mockito.Mock;
11  import org.mockito.runners.MockitoJUnitRunner;
12  
13  import java.time.Duration;
14  import java.util.Optional;
15  
16  import static org.hamcrest.Matchers.is;
17  import static org.hamcrest.Matchers.notNullValue;
18  import static org.junit.Assert.assertThat;
19  import static org.mockito.Mockito.when;
20  
21  @RunWith(MockitoJUnitRunner.class)
22  public class DefaultVCacheCreationHandlerTest {
23      @Mock
24      private JvmCacheSettings jvmCacheSettings;
25      @Mock
26      private JvmCacheDetails jvmCacheDetails;
27  
28      @Before
29      public void initStuff() {
30          when(jvmCacheDetails.getName()).thenReturn("coins");
31          when(jvmCacheDetails.getSettings()).thenReturn(jvmCacheSettings);
32      }
33  
34      @Test
35      public void jvmCacheCreation_empty() {
36          final VCacheCreationHandler handler = new DefaultVCacheCreationHandler(
37                  10, Duration.ofSeconds(11), 12, ChangeRate.LOW_CHANGE, ChangeRate.HIGH_CHANGE);
38          when(jvmCacheSettings.getMaxEntries()).thenReturn(Optional.empty());
39          when(jvmCacheSettings.getDefaultTtl()).thenReturn(Optional.empty());
40  
41          final JvmCacheSettings settings = handler.jvmCacheCreation(jvmCacheDetails);
42  
43          assertThat(settings, notNullValue());
44          assertThat(settings.getMaxEntries(), is(Optional.of(10)));
45          assertThat(settings.getDefaultTtl(), is(Optional.of(Duration.ofSeconds(11))));
46      }
47  
48      @Test
49      public void jvmCacheCreation_under_limits() {
50          final VCacheCreationHandler handler = new DefaultVCacheCreationHandler(
51                  10, Duration.ofSeconds(11), 12, ChangeRate.LOW_CHANGE, ChangeRate.HIGH_CHANGE);
52          when(jvmCacheSettings.getMaxEntries()).thenReturn(Optional.of(4));
53          when(jvmCacheSettings.getDefaultTtl()).thenReturn(Optional.of(Duration.ofSeconds(5)));
54  
55          final JvmCacheSettings settings = handler.jvmCacheCreation(jvmCacheDetails);
56  
57          assertThat(settings, notNullValue());
58          assertThat(settings.getMaxEntries(), is(Optional.of(4)));
59          assertThat(settings.getDefaultTtl(), is(Optional.of(Duration.ofSeconds(5))));
60      }
61  
62      @Test
63      public void jvmCacheCreation_over_limits() {
64          final VCacheCreationHandler handler = new DefaultVCacheCreationHandler(
65                  10, Duration.ofSeconds(11), 12, ChangeRate.LOW_CHANGE, ChangeRate.HIGH_CHANGE);
66          when(jvmCacheSettings.getMaxEntries()).thenReturn(Optional.of(40));
67          when(jvmCacheSettings.getDefaultTtl()).thenReturn(Optional.of(Duration.ofSeconds(50)));
68  
69          final JvmCacheSettings settings = handler.jvmCacheCreation(jvmCacheDetails);
70  
71          assertThat(settings, notNullValue());
72          assertThat(settings.getMaxEntries(), is(Optional.of(10)));
73          assertThat(settings.getDefaultTtl(), is(Optional.of(Duration.ofSeconds(11))));
74      }
75  
76      @Test
77      public void testRequestCacheCreation() throws Exception {
78  
79      }
80  
81      @Test
82      public void testExternalCacheCreation() throws Exception {
83  
84      }
85  }