public void testTokenRangeReplicasFromReplicaSet()

in client/src/testFixtures/java/org/apache/cassandra/sidecar/client/SidecarClientTest.java [465:512]


    public void testTokenRangeReplicasFromReplicaSet() throws Exception
    {
        String keyspace = "test";
        String nodeAddress = "127.0.0.1";
        int port = 7000;
        String nodeWithPort = nodeAddress + ":" + port;
        String expectedRangeStart = "-9223372036854775808";
        String expectedRangeEnd = "9223372036854775807";
        String tokenRangeReplicasAsString = "{\"replicaMetadata\":{\"127.0.0.1:7000\":{" +
                                            "\"state\":\"Normal\"," +
                                            "\"status\":\"Up\"," +
                                            "\"fqdn\":\"localhost\"," +
                                            "\"address\":\"127.0.0.1\"," +
                                            "\"port\":7000," +
                                            "\"datacenter\":\"datacenter1\"}}," +
                                            "\"writeReplicas\":[{\"start\":\"-9223372036854775808\"," +
                                            "\"end\":\"9223372036854775807\",\"replicasByDatacenter\":" +
                                            "{\"datacenter1\":[\"127.0.0.1:7000\"]}}],\"readReplicas\":" +
                                            "[{\"start\":\"-9223372036854775808\",\"end\":\"9223372036854775807\"," +
                                            "\"replicasByDatacenter\":{\"datacenter1\":[\"127.0.0.1:7000\"]}}]}";
        MockResponse response = new MockResponse().setResponseCode(OK.code()).setBody(tokenRangeReplicasAsString);
        enqueue(response);

        TokenRangeReplicasResponse result = client.tokenRangeReplicas(instances.subList(1, 2), keyspace)
                                                  .get(30, TimeUnit.SECONDS);
        assertThat(result).isNotNull();
        assertThat(result.writeReplicas()).hasSize(1);
        TokenRangeReplicasResponse.ReplicaInfo writeReplica = result.writeReplicas().get(0);
        assertThat(writeReplica.start()).isEqualTo(expectedRangeStart);
        assertThat(writeReplica.end()).isEqualTo(expectedRangeEnd);
        assertThat(writeReplica.replicasByDatacenter()).containsKey("datacenter1");
        assertThat(writeReplica.replicasByDatacenter().get("datacenter1")).containsExactly(nodeWithPort);
        assertThat(result.readReplicas()).hasSize(1);
        TokenRangeReplicasResponse.ReplicaInfo readReplica = result.readReplicas().get(0);
        assertThat(readReplica.start()).isEqualTo(expectedRangeStart);
        assertThat(readReplica.end()).isEqualTo(expectedRangeEnd);
        assertThat(readReplica.replicasByDatacenter()).containsKey("datacenter1");
        assertThat(readReplica.replicasByDatacenter().get("datacenter1")).containsExactly(nodeWithPort);
        assertThat(result.replicaMetadata()).hasSize(1);
        TokenRangeReplicasResponse.ReplicaMetadata instanceMetadata = result.replicaMetadata().get(nodeWithPort);
        assertThat(instanceMetadata.state()).isEqualTo("Normal");
        assertThat(instanceMetadata.status()).isEqualTo("Up");
        assertThat(instanceMetadata.fqdn()).isEqualTo("localhost");
        assertThat(instanceMetadata.datacenter()).isEqualTo("datacenter1");

        validateResponseServed(ApiEndpointsV1.KEYSPACE_TOKEN_MAPPING_ROUTE.replaceAll(
        KEYSPACE_PATH_PARAM, keyspace));
    }