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));
}