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.assertTrue;
19
20 import org.apache.ibatis.cache.decorators.*;
21 import org.apache.ibatis.cache.impl.PerpetualCache;
22 import org.junit.jupiter.api.Test;
23
24 class SuperCacheTest {
25
26 @Test
27 void shouldDemonstrate5LevelSuperCacheHandlesLotsOfEntriesWithoutCrashing() {
28 final int N = 100000;
29 Cache cache = new PerpetualCache("default");
30 cache = new LruCache(cache);
31 cache = new FifoCache(cache);
32 cache = new SoftCache(cache);
33 cache = new WeakCache(cache);
34 cache = new ScheduledCache(cache);
35 cache = new SerializedCache(cache);
36
37 cache = new SynchronizedCache(cache);
38 cache = new TransactionalCache(cache);
39 for (int i = 0; i < N; i++) {
40 cache.putObject(i, i);
41 ((TransactionalCache) cache).commit();
42 Object o = cache.getObject(i);
43 assertTrue(o == null || i == ((Integer) o));
44 }
45 assertTrue(cache.getSize() < N);
46 }
47
48 }