public void testMainResponseSerialization() throws IOException {
    final String nodeName = "node1";
    final ClusterName clusterName = new ClusterName("cluster1");
    final boolean available = randomBoolean();
    final Version version = Version.CURRENT;
    final Build build = Build.CURRENT;

    final MainResponse mainResponse =
        new MainResponse(nodeName, version, clusterName, build, available);
    BytesStreamOutput streamOutput = new BytesStreamOutput();
    mainResponse.writeTo(streamOutput);
    final MainResponse serialized = new MainResponse();
    serialized.readFrom(new ByteBufferStreamInput(ByteBuffer.wrap(streamOutput.bytes().toBytes())));

    assertThat(serialized.getNodeName(), equalTo(nodeName));
    assertThat(serialized.getClusterName(), equalTo(clusterName));
    assertThat(serialized.getBuild(), equalTo(build));
    assertThat(serialized.isAvailable(), equalTo(available));
    assertThat(serialized.getVersion(), equalTo(version));
  }