@Override public ConsulClient healthStateWithOptions(HealthState healthState, CheckQueryOptions options, Handler<AsyncResult<CheckList>> resultHandler) { Query query = options == null ? null : Query.of("near", options.getNear()).put(options.getBlockingOptions()); requestArray(HttpMethod.GET, "/v1/health/state/" + healthState.key, query, null, resultHandler, (arr, headers) -> { List<Check> list = arr.stream().map(obj -> CheckParser.parse((JsonObject) obj)).collect(Collectors.toList()); return new CheckList().setList(list).setIndex(Long.parseLong(headers.get(INDEX_HEADER))); }); return this; }
@Override public ConsulClient healthChecksWithOptions(String service, CheckQueryOptions options, Handler<AsyncResult<CheckList>> resultHandler) { Query query = options == null ? null : Query.of("near", options.getNear()).put(options.getBlockingOptions()); requestArray(HttpMethod.GET, "/v1/health/checks/" + urlEncode(service), query, null, resultHandler, (arr, headers) -> { List<Check> list = arr.stream().map(obj -> CheckParser.parse((JsonObject) obj)).collect(Collectors.toList()); return new CheckList().setList(list).setIndex(Long.parseLong(headers.get(INDEX_HEADER))); }); return this; }
@Test public void testCheckListCopy() { List<Check> checks = new ArrayList<>(); checks.add(randomCheck()); checks.add(randomCheck()); CheckList list = new CheckList() .setIndex(randomPositiveInt()) .setList(checks); checkCheckList(list, new CheckList(list)); checkCheckList(list, new CheckList(list.toJson())); List<Check> shuffledEvents = new ArrayList<>(); shuffledEvents.add(checks.get(1)); shuffledEvents.add(checks.get(0)); CheckList shuffled = new CheckList() .setIndex(list.getIndex()) .setList(shuffledEvents); checkCheckList(list, shuffled); }