View Javadoc

1   package com.atlassian.vcache;
2   
3   import org.junit.Test;
4   
5   import static java.time.Duration.ofSeconds;
6   import static org.hamcrest.Matchers.is;
7   import static org.hamcrest.Matchers.notNullValue;
8   import static org.junit.Assert.assertThat;
9   
10  public class ExternalCacheSettingsTest {
11      private static final ExternalCacheSettings settings1 = new ExternalCacheSettingsBuilder().
12              defaultTtl(ofSeconds(1)).
13              dataChangeRateHint(ChangeRate.LOW_CHANGE).
14              entryCountHint(1).
15              entryGrowthRateHint(ChangeRate.LOW_CHANGE).
16              build();
17  
18      private static final ExternalCacheSettings settings2 = new ExternalCacheSettingsBuilder().
19              defaultTtl(ofSeconds(2)).
20              dataChangeRateHint(ChangeRate.HIGH_CHANGE).
21              entryCountHint(2).
22              entryGrowthRateHint(ChangeRate.HIGH_CHANGE).
23              build();
24  
25      private static final ExternalCacheSettings settingsEmpty = new ExternalCacheSettingsBuilder().build();
26  
27      @Test
28      public void testOverride1With2() {
29          final ExternalCacheSettings overridden = settings1.override(settings2);
30  
31          assertThat(overridden, notNullValue());
32          assertThat(overridden.getDefaultTtl(), is(settings2.getDefaultTtl()));
33          assertThat(overridden.getDataChangeRateHint(), is(settings2.getDataChangeRateHint()));
34          assertThat(overridden.getEntryCountHint(), is(settings2.getEntryCountHint()));
35          assertThat(overridden.getEntryGrowthRateHint(), is(settings2.getEntryGrowthRateHint()));
36      }
37  
38      @Test
39      public void testOverride2With1() {
40          final ExternalCacheSettings overridden = settings2.override(settings1);
41  
42          assertThat(overridden, notNullValue());
43          assertThat(overridden.getDefaultTtl(), is(settings1.getDefaultTtl()));
44          assertThat(overridden.getDataChangeRateHint(), is(settings1.getDataChangeRateHint()));
45          assertThat(overridden.getEntryCountHint(), is(settings1.getEntryCountHint()));
46          assertThat(overridden.getEntryGrowthRateHint(), is(settings1.getEntryGrowthRateHint()));
47      }
48  
49      @Test
50      public void testOverrideEmptyWith1() {
51          final ExternalCacheSettings overridden = settingsEmpty.override(settings1);
52  
53          assertThat(overridden, notNullValue());
54          assertThat(overridden.getDefaultTtl(), is(settings1.getDefaultTtl()));
55          assertThat(overridden.getDataChangeRateHint(), is(settings1.getDataChangeRateHint()));
56          assertThat(overridden.getEntryCountHint(), is(settings1.getEntryCountHint()));
57          assertThat(overridden.getEntryGrowthRateHint(), is(settings1.getEntryGrowthRateHint()));
58      }
59  
60      @Test
61      public void testOverride2WithEmpty() {
62          final ExternalCacheSettings overridden = settings2.override(settingsEmpty);
63  
64          assertThat(overridden, notNullValue());
65          assertThat(overridden.getDefaultTtl(), is(settings2.getDefaultTtl()));
66          assertThat(overridden.getDataChangeRateHint(), is(settings2.getDataChangeRateHint()));
67          assertThat(overridden.getEntryCountHint(), is(settings2.getEntryCountHint()));
68          assertThat(overridden.getEntryGrowthRateHint(), is(settings2.getEntryGrowthRateHint()));
69      }
70  }