Skip to content

Commit 8bf1780

Browse files
committed
convert to java
1 parent f374dd3 commit 8bf1780

File tree

9 files changed

+147
-145
lines changed

9 files changed

+147
-145
lines changed

javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/bytebuddy/matcher/HasInterfaceMatcherTest.groovy

Lines changed: 0 additions & 72 deletions
This file was deleted.

javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/bytebuddy/matcher/ThrowOnFirstElement.groovy

Lines changed: 0 additions & 21 deletions
This file was deleted.

javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/bytebuddy/matcher/ExtendsClassMatcherTest.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,21 @@ class ExtendsClassMatcherTest {
2727

2828
@BeforeAll
2929
static void setUp() {
30-
typePool = AgentTooling.poolStrategy()
31-
.typePool(AgentTooling.locationStrategy().classFileLocator(ExtendsClassMatcherTest.class.getClassLoader(), null),
32-
ExtendsClassMatcherTest.class.getClassLoader());
30+
typePool =
31+
AgentTooling.poolStrategy()
32+
.typePool(
33+
AgentTooling.locationStrategy()
34+
.classFileLocator(ExtendsClassMatcherTest.class.getClassLoader(), null),
35+
ExtendsClassMatcherTest.class.getClassLoader());
3336
}
3437

3538
@ParameterizedTest
3639
@CsvSource({
37-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, false",
38-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, false",
39-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, false",
40-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, true",
41-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, true"
40+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, false",
41+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, false",
42+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, false",
43+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, true",
44+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, true"
4245
})
4346
void testMatcher(String matcherClassName, String typeClassName, boolean expectedResult) {
4447
TypeDescription argument = typePool.describe(typeClassName).resolve();
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.tooling.bytebuddy.matcher;
7+
8+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
9+
import static net.bytebuddy.matcher.ElementMatchers.named;
10+
import static org.assertj.core.api.Assertions.assertThat;
11+
import static org.assertj.core.api.Assertions.assertThatCode;
12+
import static org.mockito.Mockito.mock;
13+
import static org.mockito.Mockito.when;
14+
15+
import io.opentelemetry.javaagent.tooling.muzzle.AgentTooling;
16+
import java.util.Iterator;
17+
import net.bytebuddy.description.type.TypeDescription;
18+
import net.bytebuddy.description.type.TypeList;
19+
import net.bytebuddy.pool.TypePool;
20+
import org.junit.jupiter.api.BeforeAll;
21+
import org.junit.jupiter.api.Test;
22+
import org.junit.jupiter.params.ParameterizedTest;
23+
import org.junit.jupiter.params.provider.CsvSource;
24+
25+
@SuppressWarnings({"unchecked", "rawtypes"})
26+
class HasInterfaceMatcherTest {
27+
28+
private static TypePool typePool;
29+
30+
@BeforeAll
31+
static void setUp() {
32+
typePool =
33+
AgentTooling.poolStrategy()
34+
.typePool(
35+
AgentTooling.locationStrategy()
36+
.classFileLocator(HasInterfaceMatcherTest.class.getClassLoader(), null),
37+
HasInterfaceMatcherTest.class.getClassLoader());
38+
}
39+
40+
@ParameterizedTest
41+
@CsvSource({
42+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, true",
43+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, true",
44+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, false",
45+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.E, true",
46+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, true",
47+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, true",
48+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, false",
49+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, false",
50+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, false"
51+
})
52+
void testMatcher(String matcherClassName, String typeClassName, boolean expectedResult) {
53+
TypeDescription argument = typePool.describe(typeClassName).resolve();
54+
55+
boolean result = implementsInterface(named(matcherClassName)).matches(argument);
56+
57+
assertThat(result).isEqualTo(expectedResult);
58+
}
59+
60+
@Test
61+
void testTraversalExceptions() {
62+
TypeDescription type = mock(TypeDescription.class);
63+
TypeDescription.Generic typeGeneric = mock(TypeDescription.Generic.class);
64+
TypeList.Generic interfaces = mock(TypeList.Generic.class);
65+
Iterator iterator = new ThrowOnFirstElement();
66+
67+
when(type.isInterface()).thenReturn(true);
68+
when(type.asGenericType()).thenReturn(typeGeneric);
69+
when(typeGeneric.asErasure()).thenThrow(new RuntimeException("asErasure exception"));
70+
when(type.getInterfaces()).thenReturn(interfaces);
71+
when(interfaces.iterator()).thenReturn(iterator);
72+
when(type.getSuperClass()).thenThrow(new RuntimeException("getSuperClass exception"));
73+
74+
boolean result = implementsInterface(named(Object.class.getName())).matches(type);
75+
76+
assertThat(result).isFalse();
77+
assertThatCode(() -> implementsInterface(named(Object.class.getName())).matches(type))
78+
.doesNotThrowAnyException();
79+
}
80+
}

javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/bytebuddy/matcher/HasSuperMethodMatcherTest.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,7 @@
1313
import static org.mockito.Mockito.when;
1414

1515
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A;
16-
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B;
17-
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.C;
18-
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F;
19-
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G;
2016
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.Trace;
21-
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.TracedClass;
22-
import io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.UntracedClass;
2317
import net.bytebuddy.description.method.MethodDescription;
2418
import org.junit.jupiter.api.Test;
2519
import org.junit.jupiter.params.ParameterizedTest;
@@ -29,18 +23,19 @@ class HasSuperMethodMatcherTest {
2923

3024
@ParameterizedTest
3125
@CsvSource({
32-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, a, false",
33-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, b, true",
34-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.C, c, false",
35-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, f, true",
36-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, g, false",
37-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.TracedClass, a, true",
38-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.UntracedClass, a, false",
39-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.UntracedClass, b, true"
26+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, a, false",
27+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, b, true",
28+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.C, c, false",
29+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, f, true",
30+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, g, false",
31+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.TracedClass, a, true",
32+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.UntracedClass, a, false",
33+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.UntracedClass, b, true"
4034
})
4135
void testMatcher(String className, String methodName, boolean expectedResult) throws Exception {
4236
Class<?> clazz = Class.forName(className);
43-
MethodDescription argument = new MethodDescription.ForLoadedMethod(clazz.getDeclaredMethod(methodName));
37+
MethodDescription argument =
38+
new MethodDescription.ForLoadedMethod(clazz.getDeclaredMethod(methodName));
4439

4540
boolean result = hasSuperMethod(isAnnotatedWith(Trace.class)).matches(argument);
4641

@@ -60,7 +55,8 @@ void testConstructorNeverMatches() {
6055
@Test
6156
void testTraversalExceptions() throws Exception {
6257
MethodDescription method = mock(MethodDescription.class);
63-
MethodDescription.SignatureToken sigToken = new MethodDescription.ForLoadedMethod(A.class.getDeclaredMethod("a")).asSignatureToken();
58+
MethodDescription.SignatureToken sigToken =
59+
new MethodDescription.ForLoadedMethod(A.class.getDeclaredMethod("a")).asSignatureToken();
6460

6561
when(method.isConstructor()).thenReturn(false);
6662
when(method.asSignatureToken()).thenReturn(sigToken);

javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/bytebuddy/matcher/ImplementsInterfaceMatcherTest.java

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
16
package io.opentelemetry.javaagent.tooling.bytebuddy.matcher;
27

38
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
@@ -23,22 +28,25 @@ class ImplementsInterfaceMatcherTest {
2328

2429
@BeforeAll
2530
static void setUp() {
26-
typePool = AgentTooling.poolStrategy()
27-
.typePool(AgentTooling.locationStrategy().classFileLocator(ImplementsInterfaceMatcherTest.class.getClassLoader(), null),
28-
ImplementsInterfaceMatcherTest.class.getClassLoader());
31+
typePool =
32+
AgentTooling.poolStrategy()
33+
.typePool(
34+
AgentTooling.locationStrategy()
35+
.classFileLocator(ImplementsInterfaceMatcherTest.class.getClassLoader(), null),
36+
ImplementsInterfaceMatcherTest.class.getClassLoader());
2937
}
3038

3139
@ParameterizedTest
3240
@CsvSource({
33-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, true",
34-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, true",
35-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, false",
36-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.E, true",
37-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, true",
38-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, true",
39-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, false",
40-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, false",
41-
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, false"
41+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, true",
42+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, true",
43+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.B, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, false",
44+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.E, true",
45+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, true",
46+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, true",
47+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.A, false",
48+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, false",
49+
"io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.F, io.opentelemetry.javaagent.tooling.bytebuddy.matcher.testclasses.G, false"
4250
})
4351
void testMatcher(String matcherClassName, String typeClassName, boolean expectedResult) {
4452
TypeDescription argument = typePool.describe(typeClassName).resolve();

javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/bytebuddy/matcher/LoggingFailSafeMatcherTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
16
package io.opentelemetry.javaagent.tooling.bytebuddy.matcher;
27

38
import static org.assertj.core.api.Assertions.assertThat;
@@ -8,9 +13,9 @@
813

914
import io.opentelemetry.javaagent.tooling.bytebuddy.LoggingFailSafeMatcher;
1015
import net.bytebuddy.matcher.ElementMatcher;
16+
import org.junit.jupiter.api.Test;
1117
import org.junit.jupiter.params.ParameterizedTest;
1218
import org.junit.jupiter.params.provider.ValueSource;
13-
import org.junit.jupiter.api.Test;
1419

1520
@SuppressWarnings({"unchecked", "rawtypes"})
1621
class LoggingFailSafeMatcherTest {

0 commit comments

Comments
 (0)