Skip to content

Commit f374dd3

Browse files
committed
convert to java
1 parent e76195b commit f374dd3

File tree

2 files changed

+73
-73
lines changed

2 files changed

+73
-73
lines changed

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

Lines changed: 0 additions & 73 deletions
This file was deleted.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
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.hasSuperMethod;
9+
import static net.bytebuddy.matcher.ElementMatchers.isAnnotatedWith;
10+
import static net.bytebuddy.matcher.ElementMatchers.none;
11+
import static org.assertj.core.api.Assertions.assertThat;
12+
import static org.mockito.Mockito.mock;
13+
import static org.mockito.Mockito.when;
14+
15+
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;
20+
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;
23+
import net.bytebuddy.description.method.MethodDescription;
24+
import org.junit.jupiter.api.Test;
25+
import org.junit.jupiter.params.ParameterizedTest;
26+
import org.junit.jupiter.params.provider.CsvSource;
27+
28+
class HasSuperMethodMatcherTest {
29+
30+
@ParameterizedTest
31+
@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"
40+
})
41+
void testMatcher(String className, String methodName, boolean expectedResult) throws Exception {
42+
Class<?> clazz = Class.forName(className);
43+
MethodDescription argument = new MethodDescription.ForLoadedMethod(clazz.getDeclaredMethod(methodName));
44+
45+
boolean result = hasSuperMethod(isAnnotatedWith(Trace.class)).matches(argument);
46+
47+
assertThat(result).isEqualTo(expectedResult);
48+
}
49+
50+
@Test
51+
void testConstructorNeverMatches() {
52+
MethodDescription method = mock(MethodDescription.class);
53+
when(method.isConstructor()).thenReturn(true);
54+
55+
boolean result = hasSuperMethod(none()).matches(method);
56+
57+
assertThat(result).isFalse();
58+
}
59+
60+
@Test
61+
void testTraversalExceptions() throws Exception {
62+
MethodDescription method = mock(MethodDescription.class);
63+
MethodDescription.SignatureToken sigToken = new MethodDescription.ForLoadedMethod(A.class.getDeclaredMethod("a")).asSignatureToken();
64+
65+
when(method.isConstructor()).thenReturn(false);
66+
when(method.asSignatureToken()).thenReturn(sigToken);
67+
when(method.getDeclaringType()).thenReturn(null);
68+
69+
boolean result = hasSuperMethod(none()).matches(method);
70+
71+
assertThat(result).isFalse();
72+
}
73+
}

0 commit comments

Comments
 (0)