public void testConnectedClientStats()

in client/src/testFixtures/java/org/apache/cassandra/sidecar/client/SidecarClientTest.java [1522:1564]


    public void testConnectedClientStats() throws Exception
    {
        String connectedClientStatsResponseAsString = "{\"clientConnections\":[{\"address\":\"127.0.0.1\",\"port\":54628" +
                                                      ",\"sslEnabled\":false,\"sslCipherSuite\":\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\"" +
                                                      ",\"sslProtocol\":\"TLSv1.2\",\"protocolVersion\":\"5\",\"username\":\"anonymous\"" +
                                                      ",\"requestCount\":39,\"driverName\":\"DataStax Java Driver\"" +
                                                      ",\"driverVersion\":\"3.11.3\",\"keyspaceName\":\"test\"" +
                                                      ",\"authenticationMode\":\"MutualTls\"" +
                                                      ",\"authenticationMetadata\":{\"identity\":\"spiffe://test.cassandra.apache.org/unitTest/mtls\"}" +
                                                      ",\"clientOptions\":{\"CQL_VERSION\":\"3.4.6\",\"DRIVER_NAME\":\"DataStax Python Driver\"" +
                                                      ",\"DRIVER_VERSION\":\"3.25.0\"}}],\"totalConnectedClients\":1" +
                                                      ",\"connectionsByUser\":{\"anonymous\":1}}";

        MockResponse response = new MockResponse().setResponseCode(OK.code()).setBody(connectedClientStatsResponseAsString);
        enqueue(response);

        for (MockWebServer server : servers)
        {
            SidecarInstanceImpl sidecarInstance = RequestExecutorTest.newSidecarInstance(server);
            ConnectedClientStatsResponse result = client.connectedClientStats(sidecarInstance).get();

            assertThat(result).isNotNull();
            assertThat(result.clientConnections()).isNotNull().hasSize(1);
            assertThat(result.totalConnectedClients()).isNotNull().isEqualTo(1);
            assertThat(result.connectionsByUser()).isNotNull().containsKey("anonymous");
            ClientConnectionEntry entry = result.clientConnections().iterator().next();
            assertThat(entry.address()).isEqualTo("127.0.0.1");
            assertThat(entry.port()).isEqualTo(54628);
            assertThat(entry.sslEnabled()).isEqualTo(false);
            assertThat(entry.sslCipherSuite()).isEqualTo("TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256");
            assertThat(entry.sslProtocol()).isEqualTo("TLSv1.2");
            assertThat(entry.protocolVersion()).isEqualTo("5");
            assertThat(entry.username()).isEqualTo("anonymous");
            assertThat(entry.requestCount()).isEqualTo(39);
            assertThat(entry.driverName()).isEqualTo("DataStax Java Driver");
            assertThat(entry.driverVersion()).isEqualTo("3.11.3");
            assertThat(entry.keyspaceName()).isEqualTo("test");
            assertThat(entry.authenticationMode()).isEqualTo("MutualTls");
            assertThat(entry.authenticationMetadata()).containsKey("identity");
            assertThat(entry.clientOptions()).containsKeys("CQL_VERSION", "DRIVER_NAME", "DRIVER_VERSION");
            validateResponseServed(server, ApiEndpointsV1.CONNECTED_CLIENT_STATS_ROUTE, req -> {});
        }
    }