1 package com.atlassian.vcache.internal.guava;
2
3 import com.atlassian.vcache.ChangeRate;
4 import com.atlassian.vcache.VCacheFactory;
5 import com.atlassian.vcache.internal.RequestContext;
6 import com.atlassian.vcache.internal.VCacheLifecycleManager;
7 import com.atlassian.vcache.internal.VCacheManagement;
8 import com.atlassian.vcache.internal.core.DefaultVCacheCreationHandler;
9 import com.atlassian.vcache.internal.core.metrics.DefaultMetricsCollector;
10 import com.atlassian.vcache.internal.core.metrics.MetricsCollector;
11 import com.atlassian.vcache.internal.test.AbstractVCacheServiceIT;
12 import com.atlassian.vcache.internal.test.EmptyVCacheSettingsDefaultsProvider;
13 import com.atlassian.vcache.internal.test.ThreadLocalRequestContextSupplier;
14 import org.junit.After;
15 import org.junit.Before;
16
17 public class GuavaVCacheServiceIT extends AbstractVCacheServiceIT {
18 private final ThreadLocalRequestContextSupplier requestContextSupplier =
19 ThreadLocalRequestContextSupplier.strictSupplier();
20 private final MetricsCollector metricsCollector = new DefaultMetricsCollector(requestContextSupplier);
21
22 private GuavaVCacheService service = new GuavaVCacheService(
23 "confira",
24 requestContextSupplier,
25 requestContextSupplier,
26 new EmptyVCacheSettingsDefaultsProvider(),
27 new DefaultVCacheCreationHandler(
28 MAX_ENTRIES,
29 MAX_TTL,
30 MAX_ENTRIES,
31 ChangeRate.HIGH_CHANGE,
32 ChangeRate.HIGH_CHANGE),
33 metricsCollector,
34 new GuavaServiceSettingsBuilder().enableSerializationHack().build(),
35 begunTxnActivityHandler);
36
37 @Override
38 protected VCacheFactory vCacheFactory() {
39 return service;
40 }
41
42 @Override
43 protected VCacheManagement vCacheManagement() {
44 return service;
45 }
46
47 @Override
48 protected VCacheLifecycleManager vCacheLifecycleManager() {
49 return service;
50 }
51
52 @Override
53 protected RequestContext currentRequestContext() {
54 return requestContextSupplier.get();
55 }
56
57 @Override
58 protected void forceNewRequestContext() {
59 clearThread();
60 initThread();
61 }
62
63 @Before
64 public void initThread() {
65 requestContextSupplier.initThread("tenant-123");
66 }
67
68 @After
69 public void clearThread() {
70 requestContextSupplier.clearThread();
71 }
72 }