From c95c634b3664927bd704af78e735e16e0f26e6ef Mon Sep 17 00:00:00 2001 From: Jason Plumb Date: Thu, 8 Dec 2022 15:00:52 -0800 Subject: [PATCH 1/5] improve attribute assertions to alwyas contain the attr key --- .../testing/assertj/AttributeAssertion.java | 7 +++++ .../assertj/AttributeAssertionTest.java | 29 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java diff --git a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertion.java b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertion.java index e72e81a16ed..a09d9cdfdd9 100644 --- a/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertion.java +++ b/sdk/testing/src/main/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertion.java @@ -37,6 +37,13 @@ static AttributeAssertion create( // suppressing here. @SuppressWarnings("NullAway") static AbstractAssert attributeValueAssertion(AttributeKey key, @Nullable Object value) { + AbstractAssert, ?> abstractAssert = makeAssertion(key, value); + String description = "%s attribute '%s'"; + return abstractAssert.as(description, key.getType(), key.getKey()); + } + + private static AbstractAssert, ?> makeAssertion( + AttributeKey key, Object value) { switch (key.getType()) { case STRING: return assertThat((String) value); diff --git a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java new file mode 100644 index 00000000000..4c6f3148074 --- /dev/null +++ b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java @@ -0,0 +1,29 @@ +package io.opentelemetry.sdk.testing.assertj; + +import io.opentelemetry.api.common.AttributeKey; +import org.assertj.core.api.AbstractAssert; +import org.junit.jupiter.api.Test; +import java.util.function.Consumer; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.fail; + +class AttributeAssertionTest { + + @Test + void nullAttr_errorMessageContainsAttrName() { + AttributeKey key = AttributeKey.stringKey("flib"); + AttributeAssertion attrAssertion = AttributeAssertion.create(key, AbstractAssert::isNotNull); + AbstractAssert anAssert = AttributeAssertion.attributeValueAssertion(key, null); + Consumer> a = attrAssertion.getAssertion(); + try { + a.accept(anAssert); + fail("Should have failed the assertion"); + } catch (AssertionError e) { + assertThat(e).hasMessage("[STRING attribute 'flib'] \n" + + "Expecting actual not to be null"); + } + + } + +} \ No newline at end of file From ce1c4e071e74f29707f8c90f7c073de66b8e8c67 Mon Sep 17 00:00:00 2001 From: Jason Plumb Date: Thu, 8 Dec 2022 15:01:48 -0800 Subject: [PATCH 2/5] spotless --- .../assertj/AttributeAssertionTest.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java index 4c6f3148074..9fb963f83ab 100644 --- a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java +++ b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java @@ -1,12 +1,17 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + package io.opentelemetry.sdk.testing.assertj; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.fail; + import io.opentelemetry.api.common.AttributeKey; +import java.util.function.Consumer; import org.assertj.core.api.AbstractAssert; import org.junit.jupiter.api.Test; -import java.util.function.Consumer; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; class AttributeAssertionTest { @@ -20,10 +25,7 @@ void nullAttr_errorMessageContainsAttrName() { a.accept(anAssert); fail("Should have failed the assertion"); } catch (AssertionError e) { - assertThat(e).hasMessage("[STRING attribute 'flib'] \n" - + "Expecting actual not to be null"); + assertThat(e).hasMessage("[STRING attribute 'flib'] \n" + "Expecting actual not to be null"); } - } - -} \ No newline at end of file +} From b7f4f9e8301b40d32b95d2bcec298477cce9ed42 Mon Sep 17 00:00:00 2001 From: Jason Plumb Date: Thu, 8 Dec 2022 15:17:08 -0800 Subject: [PATCH 3/5] change assertion --- .../sdk/testing/assertj/AttributeAssertionTest.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java index 9fb963f83ab..5a1b86afbef 100644 --- a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java +++ b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java @@ -6,7 +6,7 @@ package io.opentelemetry.sdk.testing.assertj; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.fail; +import static org.junit.Assert.assertThrows; import io.opentelemetry.api.common.AttributeKey; import java.util.function.Consumer; @@ -21,11 +21,7 @@ void nullAttr_errorMessageContainsAttrName() { AttributeAssertion attrAssertion = AttributeAssertion.create(key, AbstractAssert::isNotNull); AbstractAssert anAssert = AttributeAssertion.attributeValueAssertion(key, null); Consumer> a = attrAssertion.getAssertion(); - try { - a.accept(anAssert); - fail("Should have failed the assertion"); - } catch (AssertionError e) { - assertThat(e).hasMessage("[STRING attribute 'flib'] \n" + "Expecting actual not to be null"); - } + String message = assertThrows(AssertionError.class, () -> a.accept(anAssert)).getMessage(); + assertThat(message).isEqualTo("[STRING attribute 'flib'] \nExpecting actual not to be null"); } } From 300d2399efc63a3c7e402ba652934c3c7373dd02 Mon Sep 17 00:00:00 2001 From: jason plumb <75337021+breedx-splk@users.noreply.github.com> Date: Fri, 9 Dec 2022 09:11:04 -0800 Subject: [PATCH 4/5] Update sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java Co-authored-by: jack-berg <34418638+jack-berg@users.noreply.github.com> --- .../sdk/testing/assertj/AttributeAssertionTest.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java index 5a1b86afbef..3f32b86754d 100644 --- a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java +++ b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java @@ -18,10 +18,13 @@ class AttributeAssertionTest { @Test void nullAttr_errorMessageContainsAttrName() { AttributeKey key = AttributeKey.stringKey("flib"); - AttributeAssertion attrAssertion = AttributeAssertion.create(key, AbstractAssert::isNotNull); - AbstractAssert anAssert = AttributeAssertion.attributeValueAssertion(key, null); - Consumer> a = attrAssertion.getAssertion(); - String message = assertThrows(AssertionError.class, () -> a.accept(anAssert)).getMessage(); - assertThat(message).isEqualTo("[STRING attribute 'flib'] \nExpecting actual not to be null"); + + assertThatThrownBy( + () -> + AttributeAssertion.create(key, AbstractAssert::isNotNull) + .getAssertion() + .accept(AttributeAssertion.attributeValueAssertion(key, null))) + .isInstanceOf(AssertionError.class) + .hasMessage("[STRING attribute 'flib'] \nExpecting actual not to be null"); } } From 5bfc8bb334a1397a773ae932fbf06f56f9649fbe Mon Sep 17 00:00:00 2001 From: Jason Plumb Date: Fri, 9 Dec 2022 09:48:28 -0800 Subject: [PATCH 5/5] fix build --- .../sdk/testing/assertj/AttributeAssertionTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java index 3f32b86754d..aa229eefb31 100644 --- a/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java +++ b/sdk/testing/src/test/java/io/opentelemetry/sdk/testing/assertj/AttributeAssertionTest.java @@ -5,11 +5,9 @@ package io.opentelemetry.sdk.testing.assertj; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertThrows; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import io.opentelemetry.api.common.AttributeKey; -import java.util.function.Consumer; import org.assertj.core.api.AbstractAssert; import org.junit.jupiter.api.Test;