1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.cache;
17
18 import static org.junit.jupiter.api.Assertions.assertEquals;
19 import static org.junit.jupiter.api.Assertions.assertTrue;
20
21 import java.util.HashSet;
22 import java.util.Set;
23
24 import org.apache.ibatis.cache.decorators.LoggingCache;
25 import org.apache.ibatis.cache.decorators.ScheduledCache;
26 import org.apache.ibatis.cache.decorators.SerializedCache;
27 import org.apache.ibatis.cache.decorators.SynchronizedCache;
28 import org.apache.ibatis.cache.impl.PerpetualCache;
29 import org.junit.jupiter.api.Test;
30
31 class BaseCacheTest {
32
33 @Test
34 void shouldDemonstrateEqualsAndHashCodeForVariousCacheTypes() {
35 PerpetualCache cache = new PerpetualCache("test_cache");
36 assertEquals(cache, cache);
37 assertEquals(cache, new SynchronizedCache(cache));
38 assertEquals(cache, new SerializedCache(cache));
39 assertEquals(cache, new LoggingCache(cache));
40 assertEquals(cache, new ScheduledCache(cache));
41
42 assertEquals(cache.hashCode(), new SynchronizedCache(cache).hashCode());
43 assertEquals(cache.hashCode(), new SerializedCache(cache).hashCode());
44 assertEquals(cache.hashCode(), new LoggingCache(cache).hashCode());
45 assertEquals(cache.hashCode(), new ScheduledCache(cache).hashCode());
46
47 Set<Cache> caches = new HashSet<>();
48 caches.add(cache);
49 caches.add(new SynchronizedCache(cache));
50 caches.add(new SerializedCache(cache));
51 caches.add(new LoggingCache(cache));
52 caches.add(new ScheduledCache(cache));
53 assertEquals(1, caches.size());
54 }
55
56 }