### Question:
ChromeDevToolsServiceImpl implements ChromeDevToolsService, Consumer<String>, AutoCloseable { @Override public void close() { if (!isClosed()) { webSocketService.close(); if (chromeService != null) { chromeService.clearChromeDevToolsServiceCache(chromeTab); } eventExecutorService.shutdown(); closeLatch.countDown(); } } ChromeDevToolsServiceImpl(
      WebSocketService webSocketService, ChromeDevToolsServiceConfiguration configuration); void setChromeService(ChromeServiceImpl chromeService); void setChromeTab(ChromeTab chromeTab); @Override T invoke(String returnProperty, Class<T> clazz, MethodInvocation methodInvocation); @Override T invoke(
      String returnProperty,
      Class<T> clazz,
      Class<?>[] returnTypeClasses,
      MethodInvocation methodInvocation); @Override void close(); @Override boolean isClosed(); @Override void waitUntilClosed(); @Override EventListener addEventListener(
      String domainName, String eventName, EventHandler eventHandler, Class<?> eventType); @Override void removeEventListener(EventListener eventListener); @Override void accept(String message);  }### Answer:
@Test public void testClose() { webSocketService.close(); eventExecutorService.shutdown(); replayAll(); service.close(); verifyAll(); resetAll(); replayAll(); service.close(); verifyAll(); }