View Javadoc

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