JiriOndrusek commented on code in PR #4345: URL: https://github.com/apache/camel-quarkus/pull/4345#discussion_r1050832303
########## integration-test-groups/aws2/aws2-cw/src/test/java/org/apache/camel/quarkus/component/aws2/cw/it/Aws2CwTest.java: ########## @@ -90,4 +97,148 @@ public void metric() { } + @Test + public void headers() { + + final Instant startTime = Instant.ofEpochMilli(System.currentTimeMillis() - 10000); + + final String namespace = "cq-metrics-" + java.util.UUID.randomUUID().toString().replace("-", ""); + final String metricName = "metricName" + java.util.UUID.randomUUID().toString().replace("-", ""); + final int value = (int) (Math.random() * 10000); + + List<Map<String, Object>> data = new LinkedList<>(); + + data.add(CollectionHelper.mapOf( + Cw2Constants.METRIC_NAMESPACE, namespace, + Cw2Constants.METRIC_NAME, metricName, + Cw2Constants.METRIC_VALUE, 2 * value, + Cw2Constants.METRIC_UNIT, "Count", + Cw2Constants.METRIC_DIMENSION_NAME, "type", + Cw2Constants.METRIC_DIMENSION_VALUE, "even")); + data.add(CollectionHelper.mapOf( + Cw2Constants.METRIC_NAMESPACE, namespace, + Cw2Constants.METRIC_NAME, metricName, + Cw2Constants.METRIC_VALUE, 2 * value + 2, + Cw2Constants.METRIC_UNIT, "Count", + Cw2Constants.METRIC_DIMENSIONS, CollectionHelper.mapOf("type", "even"))); + data.add(CollectionHelper.mapOf( + Cw2Constants.METRIC_NAMESPACE, namespace, + Cw2Constants.METRIC_NAME, metricName, + Cw2Constants.METRIC_VALUE, 2 * value + 4, + Cw2Constants.METRIC_UNIT, "Count", + Cw2Constants.METRIC_DIMENSION_NAME, "type", + Cw2Constants.METRIC_DIMENSION_VALUE, "even")); + + data.add(CollectionHelper.mapOf( + Cw2Constants.METRIC_NAMESPACE, namespace, + Cw2Constants.METRIC_NAME, metricName, + Cw2Constants.METRIC_VALUE, 2 * value + 1, + Cw2Constants.METRIC_UNIT, "Count", + Cw2Constants.METRIC_DIMENSION_NAME, "type", + Cw2Constants.METRIC_DIMENSION_VALUE, "odd")); + data.add(CollectionHelper.mapOf( + Cw2Constants.METRIC_NAMESPACE, namespace, Cw2Constants.METRIC_NAME, metricName, + Cw2Constants.METRIC_VALUE, 2 * value + 3, + Cw2Constants.METRIC_UNIT, "Count", + Cw2Constants.METRIC_DIMENSION_NAME, "type", + Cw2Constants.METRIC_DIMENSION_VALUE, "odd")); + //ignored because of timestamp + data.add(CollectionHelper.mapOf( + Cw2Constants.METRIC_NAMESPACE, namespace, Cw2Constants.METRIC_NAME, metricName, + Cw2Constants.METRIC_VALUE, 2 * value + 5, + Cw2Constants.METRIC_TIMESTAMP, System.currentTimeMillis() - 24 * 60 * 60 * 10000, + Cw2Constants.METRIC_UNIT, "Count", + Cw2Constants.METRIC_DIMENSION_NAME, "type", + Cw2Constants.METRIC_DIMENSION_VALUE, "odd")); + + RestAssured.given() + .contentType(ContentType.JSON) + .body(data) + .post("/aws2-cw/send-metric-maps/" + namespace) + .then() + .statusCode(201); + + Awaitility.await().pollInterval(1, TimeUnit.SECONDS).atMost(120, TimeUnit.SECONDS).until( + () -> { + + List<Datapoint> oddDatapoints = client.getMetricStatistics( + GetMetricStatisticsRequest.builder() + .namespace(namespace) + .metricName(metricName) + .statistics(Statistic.SAMPLE_COUNT, Statistic.MINIMUM, Statistic.MAXIMUM) + .startTime(startTime) + .dimensions(Dimension.builder().name("type").value("odd").build()) + .endTime(Instant.ofEpochMilli(System.currentTimeMillis() + 10000)) + .period(30) + .build()) + .datapoints(); + + List<Datapoint> evenDatapoints = client.getMetricStatistics( + GetMetricStatisticsRequest.builder() + .namespace(namespace) + .metricName(metricName) + .statistics(Statistic.SAMPLE_COUNT, Statistic.AVERAGE) + .startTime(startTime) + .dimensions(Dimension.builder().name("type").value("even").build()) + .endTime(Instant.ofEpochMilli(System.currentTimeMillis() + 10000)) + .period(30) + .build()) + .datapoints(); + LOG.debug("Expecting some datapoints for metric " + namespace + "/" + metricName + " (type='odd'), got " + + oddDatapoints); + if (oddDatapoints.isEmpty()) { + return false; + } + LOG.debug("Expecting some datapoints for metric " + namespace + "/" + metricName + " (type='even'), got " + + evenDatapoints); + if (evenDatapoints.isEmpty()) { + return false; + } + + Datapoint oddDp = oddDatapoints.get(0); + Datapoint evenDp = evenDatapoints.get(0); + + if (!(oddDp.sampleCount().intValue() == 2 + && oddDp.minimum().intValue() == 2 * value + 1 + && oddDp.maximum().intValue() == 2 * value + 3)) { + throw new RuntimeException("Unexpected odd datapoint " + oddDp + + "; expected sampleCount == 2 && minimum ~ " + (2 * value + 1) + + " && maximum ~ " + (2 * value + 3)); + } + + if (!(evenDp.average() == 2 * value + 2 + && evenDp.sampleCount() == 3)) { + throw new RuntimeException("Unexpected even datapoint " + evenDp + + "; expected sampleCount == 3 && average == " + (2 * value + 2)); + } + + return true; + }); + + } + + @Test + public void customClient() { + final String namespace = "cq-metrics-" + java.util.UUID.randomUUID().toString().replace("-", ""); + final String metricName = "metricName" + java.util.UUID.randomUUID().toString().replace("-", ""); + final int value = (int) (Math.random() * 10000); + + List<Map<String, Object>> data = new LinkedList<>(); + + data.add(CollectionHelper.mapOf( + Cw2Constants.METRIC_NAMESPACE, namespace, + Cw2Constants.METRIC_NAME, metricName, + Cw2Constants.METRIC_VALUE, 2 * value, + Cw2Constants.METRIC_UNIT, "Count")); + + RestAssured.given() + .contentType(ContentType.JSON) + .queryParam("customClientName", "customClient") + .body(data) + .post("/aws2-cw/send-metric-maps/" + namespace) + .then() + .statusCode(200) + .body(is("MockedClient")); Review Comment: @aldettinger Here is assertion for the result of the mocked client exception from previous comment. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org