View Javadoc

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  }