Convert azure sdk tests to java (#5504)

* Convert azure sdk tests to java

* Better assertj
This commit is contained in:
Trask Stalnaker 2022-03-05 08:41:21 -08:00 committed by GitHub
parent 805f25868c
commit 44b04210ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 116 additions and 86 deletions

View File

@ -1,43 +0,0 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
import com.azure.core.http.policy.HttpPolicyProviders
import com.azure.core.util.Context
import com.azure.core.util.tracing.TracerProxy
import io.opentelemetry.api.trace.StatusCode
import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification
class AzureSdkTest extends AgentInstrumentationSpecification {
def "test helper classes injected"() {
expect:
TracerProxy.isTracingEnabled()
def list = new ArrayList()
HttpPolicyProviders.addAfterRetryPolicies(list)
list.size() == 1
list.get(0).getClass().getName() == "io.opentelemetry.javaagent.instrumentation.azurecore.v1_14.shaded" +
".com.azure.core.tracing.opentelemetry.OpenTelemetryHttpPolicy"
}
def "test span"() {
when:
Context context = TracerProxy.start("hello", Context.NONE)
TracerProxy.end(200, null, context)
then:
assertTraces(1) {
trace(0, 1) {
span(0) {
name "hello"
status StatusCode.OK
attributes {
}
}
}
}
}
}

View File

@ -0,0 +1,58 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
import static org.assertj.core.api.Assertions.assertThat;
import com.azure.core.http.policy.HttpPipelinePolicy;
import com.azure.core.http.policy.HttpPolicyProviders;
import com.azure.core.util.Context;
import com.azure.core.util.tracing.TracerProxy;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
import io.opentelemetry.sdk.trace.data.StatusData;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
class AzureSdkTest {
@RegisterExtension
public static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
@Test
void testHelperClassesInjected() {
assertThat(TracerProxy.isTracingEnabled()).isTrue();
List<HttpPipelinePolicy> list = new ArrayList<>();
HttpPolicyProviders.addAfterRetryPolicies(list);
assertThat(list)
.satisfiesExactly(
item ->
assertThat(item.getClass().getName())
.isEqualTo(
"io.opentelemetry.javaagent.instrumentation.azurecore.v1_14.shaded"
+ ".com.azure.core.tracing.opentelemetry.OpenTelemetryHttpPolicy"));
}
@Test
void testSpan() {
Context context = TracerProxy.start("hello", Context.NONE);
TracerProxy.end(200, null, context);
testing.waitAndAssertTraces(
trace ->
trace.hasSpansSatisfyingExactly(
span ->
span.hasName("hello")
.hasKind(SpanKind.INTERNAL)
.hasStatus(StatusData.ok())
.hasAttributesSatisfying(Attributes::isEmpty)));
}
}

View File

@ -1,43 +0,0 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
import com.azure.core.http.policy.HttpPolicyProviders
import com.azure.core.util.Context
import com.azure.core.util.tracing.TracerProxy
import io.opentelemetry.api.trace.StatusCode
import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification
class AzureSdkTest extends AgentInstrumentationSpecification {
def "test helper classes injected"() {
expect:
TracerProxy.isTracingEnabled()
def list = new ArrayList()
HttpPolicyProviders.addAfterRetryPolicies(list)
list.size() == 1
list.get(0).getClass().getName() == "io.opentelemetry.javaagent.instrumentation.azurecore.v1_19.shaded" +
".com.azure.core.tracing.opentelemetry.OpenTelemetryHttpPolicy"
}
def "test span"() {
when:
Context context = TracerProxy.start("hello", Context.NONE)
TracerProxy.end(200, null, context)
then:
assertTraces(1) {
trace(0, 1) {
span(0) {
name "hello"
status StatusCode.OK
attributes {
}
}
}
}
}
}

View File

@ -0,0 +1,58 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
import static org.assertj.core.api.Assertions.assertThat;
import com.azure.core.http.policy.HttpPipelinePolicy;
import com.azure.core.http.policy.HttpPolicyProviders;
import com.azure.core.util.Context;
import com.azure.core.util.tracing.TracerProxy;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
import io.opentelemetry.sdk.trace.data.StatusData;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
class AzureSdkTest {
@RegisterExtension
public static final InstrumentationExtension testing = AgentInstrumentationExtension.create();
@Test
void testHelperClassesInjected() {
assertThat(TracerProxy.isTracingEnabled()).isTrue();
List<HttpPipelinePolicy> list = new ArrayList<>();
HttpPolicyProviders.addAfterRetryPolicies(list);
assertThat(list)
.satisfiesExactly(
item ->
assertThat(item.getClass().getName())
.isEqualTo(
"io.opentelemetry.javaagent.instrumentation.azurecore.v1_19.shaded"
+ ".com.azure.core.tracing.opentelemetry.OpenTelemetryHttpPolicy"));
}
@Test
void testSpan() {
Context context = TracerProxy.start("hello", Context.NONE);
TracerProxy.end(200, null, context);
testing.waitAndAssertTraces(
trace ->
trace.hasSpansSatisfyingExactly(
span ->
span.hasName("hello")
.hasKind(SpanKind.INTERNAL)
.hasStatus(StatusData.ok())
.hasAttributesSatisfying(Attributes::isEmpty)));
}
}