@Override public Timer newTimer(String group, String name) { return new Timer(name); }
@Override public Timer newTimer(String group, String name) { return new Timer(name); }
@Override public Timer newTimer(String group, String name) { Timer timer = new Timer(name); return newTimer(group, timer); }
public static Context getMockContext() { Context context = new MockContext(); MetricsRegistry metricsRegistry = mock(MetricsRegistry.class); doAnswer(args -> new Timer((String) args.getArguments()[0])).when(metricsRegistry).newTimer(anyString(), anyString()); doAnswer(args -> new Counter((String) args.getArguments()[0])).when(metricsRegistry).newCounter(anyString(), anyString()); doAnswer(args -> new Gauge((String) args.getArguments()[0], 0)).when(metricsRegistry).newGauge(anyString(), any()); doReturn(metricsRegistry).when(context.getContainerContext()).getContainerMetricsRegistry(); return context; }
@Before public void setUp() { keys = Arrays.asList("k1", "k2", "k3"); values = new HashMap<>(); values.put("k1", "v1"); values.put("k2", "v2"); values.put("k3", null); kvStore = mock(KeyValueStore.class); when(kvStore.get("k1")).thenReturn("v1"); when(kvStore.get("k2")).thenReturn("v2"); when(kvStore.getAll(keys)).thenReturn(values); getNs = new Timer(""); getAllNs = new Timer(""); numGets = new Counter(""); numGetAlls = new Counter(""); getCallbackNs = new Timer(""); numMissedLookups = new Counter(""); metricsRegistry = mock(MetricsRegistry.class); String groupName = LocalTable.class.getSimpleName(); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-gets")).thenReturn(numGets); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-getAlls")).thenReturn(numGetAlls); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-missed-lookups")).thenReturn(numMissedLookups); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-get-ns")).thenReturn(getNs); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-getAll-ns")).thenReturn(getAllNs); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-get-callback-ns")).thenReturn(getCallbackNs); }
@Before public void setUp() { putNs = new Timer(""); putAllNs = new Timer(""); deleteNs = new Timer(""); deleteAllNs = new Timer(""); flushNs = new Timer(""); numPuts = new Counter(""); numPutAlls = new Counter(""); numDeletes = new Counter(""); numDeleteAlls = new Counter(""); numFlushes = new Counter(""); putCallbackNs = new Timer(""); deleteCallbackNs = new Timer(""); metricsRegistry = mock(MetricsRegistry.class); String groupName = LocalTable.class.getSimpleName(); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-put-ns")).thenReturn(putNs); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-putAll-ns")).thenReturn(putAllNs); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-delete-ns")).thenReturn(deleteNs); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-deleteAll-ns")).thenReturn(deleteAllNs); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-puts")).thenReturn(numPuts); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-putAlls")).thenReturn(numPutAlls); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-deletes")).thenReturn(numDeletes); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-deleteAlls")).thenReturn(numDeleteAlls); when(metricsRegistry.newCounter(groupName, TABLE_ID + "-num-flushes")).thenReturn(numFlushes); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-put-callback-ns")).thenReturn(putCallbackNs); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-delete-callback-ns")).thenReturn(deleteCallbackNs); when(metricsRegistry.newTimer(groupName, TABLE_ID + "-flush-ns")).thenReturn(flushNs); kvStore = mock(KeyValueStore.class); }
@Test public void testDefaultTimerUpdateAndGetSnapshot() { Timer timer = new Timer("test", 300, clock); timer.update(1L); timer.update(2L); Snapshot snapshot = timer.getSnapshot(); assertTrue(snapshot.getValues().containsAll(Arrays.asList(1L, 2L))); assertEquals(2, snapshot.getValues().size()); }
@Test public void testTimerWithDifferentWindowSize() { Timer timer = new Timer("test", 300, clock); timer.update(1L); timer.update(2L); timer.update(3L); Snapshot snapshot = timer.getSnapshot(); assertTrue(snapshot.getValues().containsAll(Arrays.asList(1L, 2L, 3L))); assertEquals(3, snapshot.getValues().size()); // The time is 500 for update(4L) because getSnapshot calls clock once + 3 // updates that call clock 3 times timer.update(4L); Snapshot snapshot2 = timer.getSnapshot(); assertTrue(snapshot2.getValues().containsAll(Arrays.asList(3L, 4L))); assertEquals(2, snapshot2.getValues().size()); } }