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.Collections;
9   import java.util.Map;
10  import java.util.Optional;
11  import java.util.Set;
12  import java.util.function.BiConsumer;
13  import java.util.function.Function;
14  
15  import static org.hamcrest.Matchers.is;
16  import static org.junit.Assert.assertThat;
17  import static org.mockito.Matchers.any;
18  import static org.mockito.Matchers.eq;
19  import static org.mockito.Mockito.verify;
20  import static org.mockito.Mockito.verifyNoMoreInteractions;
21  
22  @RunWith(MockitoJUnitRunner.class)
23  public class TimedFactoryTest {
24      @Mock
25      private Function<Set<String>, Map<String, String>> delegate;
26  
27      @Mock
28      private BiConsumer<Optional<Long>, Long> handler;
29  
30      @Test
31      public void all_quiet() throws Exception {
32          final TimedFactory<String, String> timed = new TimedFactory<>(delegate, handler);
33  
34          verifyNoMoreInteractions(delegate, handler);
35          assertThat(timed.getNumberOfKeys(), is(0L));
36      }
37  
38      @Test
39      public void not_called() throws Exception {
40          final TimedFactory<String, String> timed = new TimedFactory<>(delegate, handler);
41  
42          timed.close();
43  
44          verify(handler).accept(Optional.<Long>empty(), 0L);
45          verifyNoMoreInteractions(delegate, handler);
46          assertThat(timed.getNumberOfKeys(), is(0L));
47      }
48  
49      @Test
50      public void called() throws Exception {
51          final TimedFactory<String, String> timed = new TimedFactory<>(delegate, handler);
52  
53          final Set<String> keys = Collections.singleton("madeon");
54          timed.apply(keys);
55          timed.close();
56  
57          verify(delegate).apply(keys);
58          verify(handler).accept(any(), eq(1L));
59          verifyNoMoreInteractions(delegate, handler);
60          assertThat(timed.getNumberOfKeys(), is(1L));
61      }
62  }