public Optional<Node> voterNode(int voterId, ListenerName listenerName) {
        return Optional.ofNullable(voters.get(voterId))
            .flatMap(voterNode -> voterNode.address(listenerName))
            .map(address -> new Node(voterId, address.getHostString(), address.getPort()));
    }
@Test
    void testVoterNode() {
        VoterSet voterSet = VoterSet.fromMap(voterMap(IntStream.of(1, 2, 3), true));
        assertEquals(
            Optional.of(new Node(1, "localhost", 9991)),
            voterSet.voterNode(1, DEFAULT_LISTENER_NAME)
        );
        assertEquals(Optional.empty(), voterSet.voterNode(1, ListenerName.normalised("MISSING")));
        assertEquals(Optional.empty(), voterSet.voterNode(4, DEFAULT_LISTENER_NAME));
    }