### Question:
CompleteGraphAdvisor implements ClusterAdvisor { @Override public Optional<NodeRank> healedServer(ClusterState clusterState) { log.trace("Detecting the healed nodes for: ClusterState: {}", clusterState); ImmutableList<String> unresponsiveNodes = clusterState.getUnresponsiveNodes(); if (unresponsiveNodes.isEmpty()) { log.trace("All nodes responsive. Nothing to heal"); return Optional.empty(); } if (!unresponsiveNodes.contains(localEndpoint)) { log.trace("Local node is responsive. Nothing to heal"); return Optional.empty(); } ClusterGraph symmetricGraph = ClusterGraph.toClusterGraph(clusterState).toSymmetric(); return symmetricGraph.findFullyConnectedNode(localEndpoint); } CompleteGraphAdvisor(@NonNull String localEndpoint); @Override ClusterType getType(); @Override Optional<NodeRank> failedServer(ClusterState clusterState); @Override Optional<NodeRank> healedServer(ClusterState clusterState); @Override ClusterGraph getGraph(ClusterState clusterState);  }### Answer:
@Test public void testHealedServer() { final String localEndpoint = "c"; CompleteGraphAdvisor advisor = new CompleteGraphAdvisor(localEndpoint); ClusterState clusterState = buildClusterState( localEndpoint, ImmutableList.of(localEndpoint), nodeState("a", epoch, OK, FAILED, OK), nodeState("b", epoch, FAILED, OK, OK), nodeState("c", epoch, OK, OK, OK) ); Optional<NodeRank> healedServer = advisor.healedServer(clusterState); assertTrue(healedServer.isPresent()); assertEquals(new NodeRank(localEndpoint, clusterState.size()), healedServer.get()); }