@Override
    public ExecutorService newCachedThreadPool(ThreadFactory threadFactory) {
        return new InstrumentedExecutorService(threadPoolFactory.newCachedThreadPool(threadFactory), metricRegistry);
    }
@Test
    public void testNewCacheThreadPool() {
        final ExecutorService executorService = instrumentedThreadPoolFactory.newCachedThreadPool(threadFactory);
        assertThat(executorService, is(notNullValue()));
        assertThat(executorService, is(instanceOf(InstrumentedExecutorService.class)));

        inOrder.verify(registry, times(1)).meter(anyString());
        inOrder.verify(registry, times(1)).counter(anyString());
        inOrder.verify(registry, times(1)).meter(anyString());
        inOrder.verify(registry, times(2)).timer(anyString());
    }