diff options
Diffstat (limited to 'metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java')
-rw-r--r-- | metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java | 76 |
1 files changed, 43 insertions, 33 deletions
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java index 1a0d5c3e149..ebd80b38a42 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/YamasJsonUtilTest.java @@ -2,8 +2,12 @@ package ai.vespa.metricsproxy.metric.model.json; import ai.vespa.metricsproxy.metric.model.MetricsPacket; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.junit.Test; +import java.io.IOException; import java.util.List; import java.util.Set; @@ -12,69 +16,75 @@ import static ai.vespa.metricsproxy.http.ValuesFetcher.defaultMetricsConsumerId; import static ai.vespa.metricsproxy.metric.model.ServiceId.toServiceId; import static ai.vespa.metricsproxy.metric.model.json.YamasJsonUtil.YAMAS_ROUTING; import static ai.vespa.metricsproxy.metric.model.json.YamasJsonUtil.toMetricsPackets; -import static java.util.Collections.singleton; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * @author gjoranv */ public class YamasJsonUtilTest { + private static final ObjectMapper jsonMapper = new ObjectMapper(); + private static JsonNode metrics(MetricsPacket packet, boolean addStatus) throws IOException { + return metrics(List.of(packet), addStatus).get(0); + } + private static ArrayNode metrics(List<MetricsPacket> packets, boolean addStatus) throws IOException { + return (ArrayNode) jsonMapper.readTree(YamasJsonUtil.toJson(packets, addStatus)).get("metrics"); + } @Test - public void json_model_gets_null_status_by_default() { - MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")) - .build(); - YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet)).metrics.get(0); - assertNull(jsonModel.status_code); - assertNull(jsonModel.status_msg); + public void json_model_gets_null_status_by_default() throws IOException { + ArrayNode json = metrics(List.of(new MetricsPacket.Builder(toServiceId("foo")).build(), + new MetricsPacket.Builder(toServiceId("bar")).build()), false); + assertFalse(json.get(0).has("status_code")); + assertFalse(json.get(0).has("status_msg")); + assertTrue(json.get(1).has("status_code")); + assertTrue(json.get(1).has("status_msg")); } @Test - public void status_is_included_in_json_model_when_explicitly_asked_for() { - MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")) - .build(); - YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet), true).metrics.get(0); - assertNotNull(jsonModel.status_code); - assertNotNull(jsonModel.status_msg); + public void status_is_included_in_json_model_when_explicitly_asked_for() throws IOException { + ArrayNode json = metrics(List.of(new MetricsPacket.Builder(toServiceId("foo")).build(), + new MetricsPacket.Builder(toServiceId("bar")).build()), true); + assertTrue(json.get(0).has("status_code")); + assertTrue(json.get(0).has("status_msg")); + assertTrue(json.get(1).has("status_code")); + assertTrue(json.get(1).has("status_msg")); } @Test - public void timestamp_0_in_packet_is_translated_to_null_in_json_model() { - MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")) - .timestamp(0L) - .build(); - YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet)).metrics.get(0); - assertNull(jsonModel.timestamp); + public void timestamp_0_in_packet_is_translated_to_null_in_json_model() throws IOException { + MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")).timestamp(0L).build(); + JsonNode json = metrics(packet, true); + assertFalse(json.has("timestamp")); } @Test - public void empty_consumers_is_translated_to_null_routing_in_json_model() { - MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")) - .build(); - YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet)).metrics.get(0); - assertNull(jsonModel.routing); + public void empty_consumers_is_translated_to_null_routing_in_json_model() throws IOException { + MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")).build(); + JsonNode json = metrics(packet, true); + assertFalse(json.has("routing")); } @Test - public void default_public_consumer_is_filtered_from_yamas_routing() { + public void default_public_consumer_is_filtered_from_yamas_routing() throws IOException { MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")) .addConsumers(Set.of(vespaMetricsConsumerId, defaultMetricsConsumerId)) .build(); - YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet)).metrics.get(0); - List<String> namespaces = jsonModel.routing.get(YAMAS_ROUTING).namespaces; + JsonNode json = metrics(packet, false); + JsonNode routing = json.get("routing"); + JsonNode yamas = routing.get(YAMAS_ROUTING); + ArrayNode namespaces = (ArrayNode) yamas.get("namespaces"); assertEquals(1, namespaces.size()); - assertEquals(vespaMetricsConsumerId.id, namespaces.get(0)); + assertEquals(vespaMetricsConsumerId.id, namespaces.get(0).asText()); } @Test - public void only_default_public_consumer_yields_null_routing_in_json_model() { + public void only_default_public_consumer_yields_null_routing_in_json_model() throws IOException { MetricsPacket packet = new MetricsPacket.Builder(toServiceId("foo")) .addConsumers(Set.of(defaultMetricsConsumerId)) .build(); - YamasJsonModel jsonModel = YamasJsonUtil.toYamasArray(singleton(packet)).metrics.get(0); - assertNull(jsonModel.routing); + JsonNode json = metrics(packet, false); + assertFalse(json.has(YAMAS_ROUTING)); } @Test |