View Javadoc

1   package com.atlassian.vcache.internal.core.metrics;
2   
3   import org.junit.Test;
4   import org.junit.runner.RunWith;
5   import org.mockito.Mock;
6   import org.mockito.runners.MockitoJUnitRunner;
7   
8   import java.util.Optional;
9   import java.util.function.Consumer;
10  import java.util.function.Supplier;
11  
12  import static org.mockito.Matchers.any;
13  import static org.mockito.Mockito.verify;
14  import static org.mockito.Mockito.verifyNoMoreInteractions;
15  
16  @RunWith(MockitoJUnitRunner.class)
17  public class TimedSupplierTest {
18      @Mock
19      private Consumer<Optional<Long>> handler;
20  
21      @Mock
22      private Supplier<String> delegate;
23  
24      @Test
25      public void all_quiet() {
26          final TimedSupplier<String> timed = new TimedSupplier<>(delegate, handler);
27  
28          verifyNoMoreInteractions(delegate, handler);
29      }
30  
31      @Test
32      public void not_called() {
33          final TimedSupplier<String> timed = new TimedSupplier<>(delegate, handler);
34  
35          timed.close();
36  
37          verify(handler).accept(Optional.<Long>empty());
38          verifyNoMoreInteractions(delegate, handler);
39      }
40  
41      @Test
42      public void called() {
43          final TimedSupplier<String> timed = new TimedSupplier<>(delegate, handler);
44  
45          timed.get();
46          timed.close();
47  
48          verify(handler).accept(any());
49          verify(delegate).get();
50          verifyNoMoreInteractions(delegate, handler);
51      }
52  }