@Test(enabled = false, groups = "direct")
public void verifyGoneResponseMapsToGoneException() throws Exception {

    final RntbdTransportClient.Options options = new RntbdTransportClient.Options.Builder(requestTimeout).build();
    final SslContext sslContext = SslContextBuilder.forClient().build();
    try (final RntbdTransportClient transportClient = new RntbdTransportClient(options, sslContext)) {
        final BaseAuthorizationTokenProvider authorizationTokenProvider = new BaseAuthorizationTokenProvider(
            RntbdTestConfiguration.AccountKey
        );
        final Uri physicalAddress = new Uri("rntbd://"
            + RntbdTestConfiguration.RntbdAuthority
            + "/apps/DocDbApp/services/DocDbMaster0/partitions/780e44f4-38c8-11e6-8106-8cdcd42c33be/replicas/1p/"
        );
        final ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
        builder.put(HttpHeaders.X_DATE, Utils.nowAsRFC1123());
        final String token = authorizationTokenProvider.generateKeyAuthorizationSignature(HttpMethods.GET,
            Paths.DATABASE_ACCOUNT_PATH_SEGMENT,
            ResourceType.DatabaseAccount,
            builder.build()
        );
        builder.put(HttpHeaders.AUTHORIZATION, token);
        final RxDocumentServiceRequest request = RxDocumentServiceRequest.create(OperationType.Read,
            ResourceType.DatabaseAccount,
            Paths.DATABASE_ACCOUNT_PATH_SEGMENT,
            builder.build()
        );
        final Single<StoreResponse> responseSingle = transportClient.invokeStoreAsync(physicalAddress, null, request);
        responseSingle.toObservable().toBlocking().subscribe(new Subscriber<StoreResponse>() {
            @Override
            public void onCompleted() {
            }
            @Override
            public void onError(final Throwable error) {
                final String format = "Expected %s, not %s";
                assertTrue(error instanceof GoneException, String.format(format, GoneException.class, error.getClass()));
                final Throwable cause = error.getCause();
                if (cause != null) {
                    // assumption: cosmos isn't listening on 10251
                    assertTrue(cause instanceof ConnectException, String.format(format, ConnectException.class, error.getClass()));
                }
            }
            @Override
            public void onNext(final StoreResponse response) {
                fail(String.format("Expected GoneException, not a StoreResponse: %s", response));
            }
        });
    } catch (final Exception error) {
        final String message = String.format("%s: %s", error.getClass(), error.getMessage());
        fail(message, error);
    }
}