1 package com.atlassian.vcache.internal.core.metrics;
2
3 import com.atlassian.vcache.internal.core.TransactionControl;
4
5 import org.junit.Test;
6 import org.junit.runner.RunWith;
7 import org.mockito.Mock;
8 import org.mockito.runners.MockitoJUnitRunner;
9
10 import static com.atlassian.vcache.internal.MetricLabel.TIMED_TRANSACTION_SYNC_CALL;
11 import static com.atlassian.vcache.internal.core.metrics.CacheType.EXTERNAL;
12 import static org.mockito.Matchers.anyLong;
13 import static org.mockito.Matchers.eq;
14 import static org.mockito.Mockito.verify;
15 import static org.mockito.Mockito.verifyNoMoreInteractions;
16
17 @RunWith(MockitoJUnitRunner.class)
18 public class TimedTransactionControlTest
19 {
20 @Mock
21 private TransactionControl delegate;
22
23 @Mock
24 private MetricsCollector metricsCollector;
25
26 @Test
27 public void testTransactionSync() throws Exception
28 {
29 final TimedTransactionControl timed = new TimedTransactionControl(delegate, metricsCollector, "daft punk");
30
31 timed.transactionSync();
32
33 verify(metricsCollector).record(eq(EXTERNAL), eq("daft punk"), eq(TIMED_TRANSACTION_SYNC_CALL), anyLong());
34 verify(delegate).transactionSync();
35 verifyNoMoreInteractions(delegate, metricsCollector);
36 }
37 }