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 }