1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package issues.gh324;
17
18 import static org.assertj.core.api.Assertions.assertThat;
19
20 import org.junit.jupiter.api.Test;
21
22 class Issue324Test {
23 private final NameService nameService = new NameService();
24
25 @Test
26 void testCacheWithAutoCommitOnUpdate() {
27 nameService.resetDatabase();
28
29 nameService.insertRecord();
30 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsFred);
31 assertThat(ObservableCache.getInstance().getHits()).isZero();
32
33 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsFred);
34 assertThat(ObservableCache.getInstance().getHits()).isEqualTo(1);
35
36 nameService.updateRecordWithAutoCommit();
37 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsBarney);
38 assertThat(ObservableCache.getInstance().getHits()).isZero();
39
40 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsBarney);
41 assertThat(ObservableCache.getInstance().getHits()).isEqualTo(1);
42 }
43
44 @Test
45 void testCacheWithNoAutoCommitOnUpdateAndNoExplicitCommit() {
46 nameService.resetDatabase();
47
48 nameService.insertRecord();
49 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsFred);
50 assertThat(ObservableCache.getInstance().getHits()).isZero();
51
52 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsFred);
53 assertThat(ObservableCache.getInstance().getHits()).isEqualTo(1);
54
55
56 nameService.updateRecordWithoutAutoCommitAndNoExplicitCommit();
57 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsFred);
58 assertThat(ObservableCache.getInstance().getHits()).isEqualTo(2);
59 }
60
61 @Test
62 void testCacheWithNoAutoCommitOnUpdateAndExplicitCommit() {
63 nameService.resetDatabase();
64
65 nameService.insertRecord();
66 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsFred);
67 assertThat(ObservableCache.getInstance().getHits()).isZero();
68
69 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsFred);
70 assertThat(ObservableCache.getInstance().getHits()).isEqualTo(1);
71
72 nameService.updateRecordWithoutAutoCommitAndExplicitCommit();
73 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsBarney);
74 assertThat(ObservableCache.getInstance().getHits()).isZero();
75
76 assertThat(nameService.getRecord()).hasValueSatisfying(TestUtils::recordIsBarney);
77 assertThat(ObservableCache.getInstance().getHits()).isEqualTo(1);
78 }
79 }