### Question:
CompanionProxyShard implements Closeable { @WorkerThread protected void onDisconnect(final int status) { mHandler.sendMessage(mHandler.obtainMessage(WHAT_JNI_DISCONNECTED, status, 0)); } CompanionProxyShard(
            @NonNull final Context context,
            @NonNull final ProxyServiceHelper proxyServiceHelper,
            @NonNull final BluetoothDevice companionDevice,
            @NonNull final Listener listener,
            final int networkScore); @MainThread @Override // Closable void close(); @MainThread void startNetwork(); @MainThread void updateNetwork(final int networkScore); void dump(@NonNull final IndentingPrintWriter ipw);  }### Answer:
@Test public void testResetConnection_SysproxyDisconnected() { connectNetworkWithWifiInternet(); mCompanionProxyShard.onDisconnect(DISCONNECT_STATUS); ShadowLooper.runMainLooperOneTask(); assertTrue(mCompanionProxyShard.mHandler.hasMessages(WHAT_START_SYSPROXY)); setWaitingForAsyncDiconnectResponse(true); try { ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); assertEquals(1, mCompanionProxyShard.connectNativeCount); assertEquals(0, mCompanionProxyShard.disconnectNativeCount); assertTrue(mCompanionProxyShard.mHandler.hasMessages(WHAT_START_SYSPROXY)); } finally { setWaitingForAsyncDiconnectResponse(false); } }