@Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { this.status = Status.values()[in.readInt()]; int size = in.readInt(); if (size > 0) { Set<String> readCauses = new HashSet<>(size); for (int i = 0; i < size; i++) { readCauses.add(in.readUTF()); } this.causes = ImmutableSet.copyOf(readCauses); } else { this.causes = ImmutableSet.of(); } this.details = (NodeDetails) in.readObject(); }
private Stream<NodeHealth> nodeHealths(NodeHealth.Status... appNodeStatuses) { return of( // random number of Search nodes with random status IntStream.range(0, random.nextInt(3)) .mapToObj(i -> appNodeHealth(NodeDetails.Type.SEARCH, NodeHealth.Status.values()[random.nextInt(NodeHealth.Status.values().length)])), Arrays.stream(appNodeStatuses).map(this::appNodeHealth)) .flatMap(s -> s); }
@Test public void builder_can_be_reused() { NodeHealth.Builder builder = testSupport.randomBuilder(1); NodeHealth original = builder.build(); NodeHealth second = builder.build(); NodeHealth.Status newRandomStatus = NodeHealth.Status.values()[random.nextInt(NodeHealth.Status.values().length)]; NodeDetails newNodeDetails = testSupport.randomNodeDetails(); builder .clearCauses() .setStatus(newRandomStatus) .setDetails(newNodeDetails); String[] newCauses = IntStream.range(0, 1 + random.nextInt(2)).mapToObj(i -> randomAlphanumeric(4)).toArray(String[]::new); Arrays.stream(newCauses).forEach(builder::addCause); NodeHealth newNodeHealth = builder.build(); assertThat(second).isEqualTo(original); assertThat(newNodeHealth.getStatus()).isEqualTo(newRandomStatus); assertThat(newNodeHealth.getDetails()).isEqualTo(newNodeDetails); assertThat(newNodeHealth.getCauses()).containsOnly(newCauses); }
private NodeHealth randomNodeHealth(NodeDetails.Type type, String name, String host, int port, long started) { NodeHealth.Builder builder = newNodeHealthBuilder() .setStatus(NodeHealth.Status.values()[random.nextInt(NodeHealth.Status.values().length)]); IntStream.range(0, random.nextInt(4)).mapToObj(i -> randomAlphabetic(5)).forEach(builder::addCause); return builder.setDetails( newNodeDetailsBuilder() .setType(type) .setName(name) .setHost(host) .setPort(port) .setStartedAt(started) .build()) .build(); }
private NodeHealth randomNodeHealth() { NodeHealth.Builder builder = newNodeHealthBuilder() .setStatus(NodeHealth.Status.values()[random.nextInt(NodeHealth.Status.values().length)]); IntStream.range(0, random.nextInt(4)).mapToObj(i -> randomAlphabetic(5)).forEach(builder::addCause); return builder.setDetails( newNodeDetailsBuilder() .setType(random.nextBoolean() ? NodeDetails.Type.APPLICATION : NodeDetails.Type.SEARCH) .setName(randomAlphanumeric(3)) .setHost(randomAlphanumeric(4)) .setPort(1 + random.nextInt(3)) .setStartedAt(1 + random.nextInt(23)) .build()) .build(); }
private NodeHealth randomNodeHealth() { return newNodeHealthBuilder() .setStatus(NodeHealth.Status.values()[random.nextInt(NodeHealth.Status.values().length)]) .setDetails(newNodeDetailsBuilder() .setType(random.nextBoolean() ? NodeDetails.Type.SEARCH : NodeDetails.Type.APPLICATION) .setName(randomAlphanumeric(30)) .setHost(randomAlphanumeric(10)) .setPort(1 + random.nextInt(666)) .setStartedAt(1 + random.nextInt(852)) .build()) .build(); } }
private NodeHealth randomNodeHealth() { return newNodeHealthBuilder() .setStatus(NodeHealth.Status.values()[random.nextInt(NodeHealth.Status.values().length)]) .setDetails( NodeDetails.newNodeDetailsBuilder() .setType(random.nextBoolean() ? NodeDetails.Type.SEARCH : NodeDetails.Type.APPLICATION) .setName(randomAlphanumeric(3)) .setHost(randomAlphanumeric(4)) .setPort(1 + random.nextInt(344)) .setStartedAt(1 + random.nextInt(999)) .build()) .build(); }
private NodeHealth randomNodeHealth() { return newNodeHealthBuilder() .setStatus(NodeHealth.Status.values()[random.nextInt(NodeHealth.Status.values().length)]) .setDetails(newNodeDetailsBuilder() .setType(random.nextBoolean() ? NodeDetails.Type.APPLICATION : NodeDetails.Type.SEARCH) .setName(randomAlphanumeric(10)) .setHost(randomAlphanumeric(5)) .setPort(1 + random.nextInt(333)) .setStartedAt(1 + random.nextInt(444)) .build()) .build(); }