View Javadoc

1   package com.atlassian.vcache.internal.core.metrics;
2   
3   import com.atlassian.vcache.internal.core.TransactionControl;
4   import org.junit.Test;
5   import org.junit.runner.RunWith;
6   import org.mockito.Mock;
7   import org.mockito.runners.MockitoJUnitRunner;
8   
9   import static com.atlassian.vcache.internal.MetricLabel.TIMED_TRANSACTION_DISCARD_CALL;
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      @Mock
20      private TransactionControl delegate;
21  
22      @Mock
23      private MetricsRecorder metricsRecorder;
24  
25      @Test
26      public void testTransactionSync() throws Exception {
27          final TimedTransactionControl timed = new TimedTransactionControl(delegate, metricsRecorder, "daft punk");
28  
29          timed.transactionSync();
30  
31          verify(metricsRecorder).record(eq("daft punk"), eq(EXTERNAL), eq(TIMED_TRANSACTION_SYNC_CALL), anyLong());
32          verify(delegate).transactionSync();
33          verifyNoMoreInteractions(delegate, metricsRecorder);
34      }
35  
36      @Test
37      public void testTransactionDiscard() throws Exception {
38          final TimedTransactionControl timed = new TimedTransactionControl(delegate, metricsRecorder, "pet shop boys");
39  
40          timed.transactionDiscard();
41  
42          verify(metricsRecorder).record(eq("pet shop boys"), eq(EXTERNAL), eq(TIMED_TRANSACTION_DISCARD_CALL), anyLong());
43          verify(delegate).transactionDiscard();
44          verifyNoMoreInteractions(delegate, metricsRecorder);
45      }
46  }