### Question:
JSPackagerClient implements ReconnectingWebSocket.MessageCallback { public void close() { mWebSocket.closeQuietly(); } JSPackagerClient(String clientId, PackagerConnectionSettings settings, Map<String, RequestHandler> requestHandlers);  JSPackagerClient(
      String clientId, PackagerConnectionSettings settings,
      Map<String, RequestHandler> requestHandlers,
      @Nullable ReconnectingWebSocket.ConnectionCallback connectionCallback); void init(); void close(); @Override void onMessage(String text); @Override void onMessage(ByteString bytes);  }### Answer:
@Test public void test_onDisconnection_ShouldTriggerDisconnectionCallback() throws IOException { ConnectionCallback connectionHandler = mock(ConnectionCallback.class); RequestHandler handler = mock(RequestHandler.class); final JSPackagerClient client = new JSPackagerClient("test_client", mSettings, new HashMap<String,RequestHandler>(), connectionHandler); client.close(); verify(connectionHandler, never()).onConnected(); verify(connectionHandler, times(1)).onDisconnected(); verify(handler, never()).onNotification(any()); verify(handler, never()).onRequest(any(), any(Responder.class)); }