From d7e8651767040f3322d03f8012d4f54f86087845 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 9 Jul 2021 10:01:49 +0900 Subject: [PATCH] Add vararg hasEvents assertion (#3377) * Add vararg hasEvents assertion * Test --- .../opentelemetry-sdk-testing.txt | 2 ++ .../sdk/testing/assertj/SpanDataAssert.java | 16 ++++++++++++++++ .../assertj/OpenTelemetryAssertionsTest.java | 5 +++++ 3 files changed, 23 insertions(+) diff --git a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-testing.txt b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-testing.txt index b3f485680c..fc484b98ae 100644 --- a/docs/apidiffs/current_vs_latest/opentelemetry-sdk-testing.txt +++ b/docs/apidiffs/current_vs_latest/opentelemetry-sdk-testing.txt @@ -3,3 +3,5 @@ Comparing source compatibility of against === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 +++ NEW METHOD: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.testing.assertj.SpanDataAssert hasAttributes(java.util.Map$Entry[]) +++ NEW ANNOTATION: java.lang.SafeVarargs + +++ NEW METHOD: PUBLIC(+) FINAL(+) io.opentelemetry.sdk.testing.assertj.SpanDataAssert hasEventsSatisfyingExactly(java.util.function.Consumer[]) + +++ NEW ANNOTATION: java.lang.SafeVarargs diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java index eb6fe847cc..77bb29856e 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/SpanDataAssert.java @@ -261,6 +261,22 @@ public final class SpanDataAssert extends AbstractAssert... assertions) { + assertThat(actual.getEvents()) + .hasSize(assertions.length) + .zipSatisfy( + Arrays.asList(assertions), + (event, assertion) -> assertion.accept(new EventDataAssert(event))); + return this; + } + /** Asserts the span has the given links. */ public SpanDataAssert hasLinks(Iterable links) { isNotNull(); diff --git a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertionsTest.java b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertionsTest.java index a3dff97c2a..f6204ae572 100644 --- a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertionsTest.java +++ b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/OpenTelemetryAssertionsTest.java @@ -171,6 +171,8 @@ class OpenTelemetryAssertionsTest { attributes -> assertThat(attributes).isEqualTo(Attributes.empty())) .hasAttributesSatisfying(attributes -> assertThat(attributes).isEmpty()); }) + .hasEventsSatisfyingExactly( + event -> event.hasName("event"), event -> event.hasName("event2")) .hasLinks(LINKS) .hasLinks(LINKS.toArray(new LinkData[0])) .hasLinksSatisfying(links -> assertThat(links).hasSize(LINKS.size())) @@ -250,6 +252,9 @@ class OpenTelemetryAssertionsTest { assertThat(SPAN1) .hasEventsSatisfying(events -> assertThat(events.get(0)).hasName("notevent"))) .isInstanceOf(AssertionError.class); + assertThatThrownBy( + () -> assertThat(SPAN1).hasEventsSatisfyingExactly(event -> event.hasName("notevent"))) + .isInstanceOf(AssertionError.class); assertThatThrownBy( () -> assertThat(SPAN1)