1 package com.atlassian.vcache.internal.core.metrics;
2
3 import com.atlassian.vcache.JvmCache;
4 import com.atlassian.vcache.LocalCacheOperations;
5 import org.junit.Before;
6 import org.junit.Test;
7 import org.junit.runner.RunWith;
8 import org.mockito.Mock;
9 import org.mockito.runners.MockitoJUnitRunner;
10
11 import java.util.HashSet;
12 import java.util.Set;
13
14 import static com.atlassian.vcache.internal.MetricLabel.TIMED_GET_KEYS_CALL;
15 import static org.hamcrest.Matchers.equalTo;
16 import static org.junit.Assert.assertThat;
17 import static org.mockito.Matchers.anyLong;
18 import static org.mockito.Matchers.eq;
19 import static org.mockito.Mockito.verify;
20 import static org.mockito.Mockito.verifyNoMoreInteractions;
21 import static org.mockito.Mockito.when;
22
23 @RunWith(MockitoJUnitRunner.class)
24 public class TimedJvmCacheTest extends TimedLocalCacheOperationsTest {
25 @Mock
26 private JvmCache<String, String> delegate;
27
28 private TimedJvmCache<String, String> timed;
29
30 @Before
31 public void init() {
32 when(delegate.getName()).thenReturn(CACHE_NAME);
33 timed = new TimedJvmCache<>(delegate, metricsRecorder);
34 }
35
36
37 @Override
38 protected CacheType getCacheType() {
39 return CacheType.JVM;
40 }
41
42 @Override
43 protected LocalCacheOperations<String, String> getDelegateOps() {
44 return delegate;
45 }
46
47 @Override
48 protected TimedLocalCacheOperations<String, String> getTimed() {
49 return timed;
50 }
51
52 @Test
53 public void getKeys() throws Exception {
54 final Set<String> result = new HashSet<>();
55 when(delegate.getKeys()).thenReturn(result);
56
57 final Set<String> passedResult = timed.getKeys();
58
59 assertThat(passedResult, equalTo(result));
60
61 verify(metricsRecorder).record(eq(CACHE_NAME), eq(getCacheType()), eq(TIMED_GET_KEYS_CALL), anyLong());
62 verifyNoMoreInteractions(metricsRecorder);
63 }
64 }