1 package com.atlassian.vcache.internal.redis;
2
3 import com.atlassian.marshalling.jdk.JavaSerializationMarshalling;
4 import com.atlassian.vcache.DirectExternalCache;
5 import com.atlassian.vcache.ExternalCacheSettings;
6 import com.atlassian.vcache.internal.RequestContext;
7 import com.atlassian.vcache.internal.RequestMetrics;
8 import com.atlassian.vcache.internal.core.DefaultRequestContext;
9 import com.atlassian.vcache.internal.core.Sha1ExternalCacheKeyGenerator;
10 import com.atlassian.vcache.internal.core.metrics.DefaultMetricsCollector;
11 import com.atlassian.vcache.internal.core.metrics.MetricsCollector;
12 import com.atlassian.vcache.internal.test.AbstractUnreliableDirectExternalCacheIT;
13 import org.junit.Rule;
14
15 import java.time.Duration;
16 import java.util.concurrent.ExecutionException;
17
18 public class RedisDirectExternalCacheIT extends AbstractUnreliableDirectExternalCacheIT {
19 @Rule
20 public JedisTester jedisTester = new JedisTester();
21
22 @Rule
23 public JedisTester offlineJedisTester = new JedisTester(false);
24
25 private final RequestContext requestContext = new DefaultRequestContext(() -> "tenant-id");
26 private final MetricsCollector metricsCollector = new DefaultMetricsCollector(() -> requestContext);
27
28 @Override
29 protected DirectExternalCache<String> createCache(String name, ExternalCacheSettings settings) {
30 return metricsCollector.wrap(
31 new RedisDirectExternalCache<>(
32 jedisTester.jedisSupplier(),
33 () -> requestContext,
34 new Sha1ExternalCacheKeyGenerator("it-test-42"),
35 name,
36 JavaSerializationMarshalling.pair(String.class),
37 settings,
38 Duration.ofSeconds(1)));
39 }
40
41 @Override
42 protected DirectExternalCache<String> createOfflineCache(String name, ExternalCacheSettings settings) {
43 return new RedisDirectExternalCache<>(
44 offlineJedisTester.jedisSupplier(),
45 () -> requestContext,
46 new Sha1ExternalCacheKeyGenerator("it-test-43"),
47 name,
48 JavaSerializationMarshalling.pair(String.class),
49 settings,
50 Duration.ofSeconds(1));
51 }
52
53 @Override
54 protected RequestMetrics requestMetrics() {
55 return metricsCollector.obtainRequestMetrics(requestContext);
56 }
57
58 @Override
59 public void exact_getIdentified_removeIf() throws ExecutionException, InterruptedException {
60
61 }
62
63 @Override
64 public void exact_getIdentified_replaceIf() throws ExecutionException, InterruptedException {
65
66 }
67 }