public static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, ServiceEntry obj) { for (java.util.Map.Entry<String, Object> member : json) { switch (member.getKey()) { case "checks": if (member.getValue() instanceof JsonArray) { java.util.ArrayList<io.vertx.ext.consul.Check> list = new java.util.ArrayList<>(); ((Iterable<Object>)member.getValue()).forEach( item -> { if (item instanceof JsonObject) list.add(new io.vertx.ext.consul.Check((JsonObject)item)); }); obj.setChecks(list); } break; case "node": if (member.getValue() instanceof JsonObject) { obj.setNode(new io.vertx.ext.consul.Node((JsonObject)member.getValue())); } break; case "service": if (member.getValue() instanceof JsonObject) { obj.setService(new io.vertx.ext.consul.Service((JsonObject)member.getValue())); } break; } } }
static ServiceEntry parse(JsonObject json) { return new ServiceEntry() .setNode(NodeParser.parse(json.getJsonObject(NODE_KEY))) .setService(ServiceParser.parseAgentInfo(json.getJsonObject(SERVICE_KEY))) .setChecks(json.getJsonArray(CHECKS_KEY).stream().map(obj -> CheckParser.parse((JsonObject) obj)).collect(Collectors.toList())); } }
@Test public void testServiceEntryCopy() { ServiceEntry entry = randomServiceEntry(); checkServiceEntry(entry, new ServiceEntry(entry)); checkServiceEntry(entry, new ServiceEntry(entry.toJson())); List<Check> shuffledChecks = new ArrayList<>(); shuffledChecks.add(entry.getChecks().get(1)); shuffledChecks.add(entry.getChecks().get(0)); ServiceEntry shuffled = new ServiceEntry(entry) .setChecks(shuffledChecks); checkServiceEntry(entry, shuffled); }
@Test public void entry() { ServiceEntry entry = new ServiceEntry().setChecks(Arrays.asList( new Check().setStatus(CheckStatus.WARNING), new Check().setStatus(CheckStatus.PASSING) )); assertEquals(entry.aggregatedStatus(), CheckStatus.WARNING); } }
public static ServiceEntry randomServiceEntry() { return new ServiceEntry() .setNode(randomNode()) .setService(randomService()) .setChecks(randomObjectList(2, RandomObjects::randomCheck)); }