@Test
public void shouldHandleQueryLocalDSE() {

  // querying the local table should return node info and include dse specific columns
  List<String> queries =
      Arrays.asList(
          "SELECT * FROM system.local WHERE key='local'",
          "select * from system.local where key='local'",
          " select * from system.local where key = 'local' ; ");
  for (String query : queries) {
    List<Action> node0Actions = handler.getActions(dseNode0, queryFrame(query));
    assertThat(node0Actions).hasSize(1);
    Action node0Action = node0Actions.get(0);
    assertThat(node0Action).isInstanceOf(MessageResponseAction.class);
    Message node0Message = ((MessageResponseAction) node0Action).getMessage();
    assertThat(node0Message)
        .isRows()
        .hasRows(1)
        .hasColumnSpecs(19) // should include dse_version and graph columns
        .hasColumn(0, 0, "local")
        .hasColumn(0, 1, "COMPLETED")
        .hasColumn(0, 2, InetAddress.getLoopbackAddress())
        .hasColumn(0, 3, 9042)
        .hasColumn(0, 4, InetAddress.getLoopbackAddress())
        .hasColumn(0, 5, 9042)
        .hasColumn(0, 6, dseCluster.getName())
        .hasColumn(0, 7, "3.2.0")
        .hasColumn(0, 8, dseNode0.getDataCenter().getName())
        .hasColumn(0, 9, InetAddress.getLoopbackAddress())
        .hasColumn(0, 10, 9042)
        .hasColumn(0, 11, "org.apache.cassandra.dht.Murmur3Partitioner")
        .hasColumn(0, 12, "rack1")
        .hasColumn(0, 13, "3.0.12")
        .hasColumn(0, 14, Collections.singleton("0"))
        .hasColumn(0, 15, dseNode0.getHostId())
        .hasColumn(0, 16, PeerMetadataHandler.schemaVersion)
        .hasColumn(0, 17, "5.0.8")
        .hasColumn(0, 18, true);
  }
}