13
13
import static io .opentelemetry .javaagent .tooling .muzzle .references .Flag .MinimumVisibilityFlag .PROTECTED_OR_HIGHER ;
14
14
import static io .opentelemetry .javaagent .tooling .muzzle .references .Flag .OwnershipFlag .NON_STATIC ;
15
15
import static io .opentelemetry .javaagent .tooling .muzzle .references .Flag .OwnershipFlag .STATIC ;
16
+ import static java .util .Collections .emptySet ;
17
+ import static java .util .Collections .singleton ;
16
18
import static org .assertj .core .api .Assertions .assertThat ;
17
19
18
20
import external .LibraryBaseClass ;
26
28
import io .opentelemetry .test .TestInterface ;
27
29
import java .net .URL ;
28
30
import java .net .URLClassLoader ;
29
- import java .util .ArrayList ;
30
31
import java .util .Arrays ;
31
32
import java .util .Collections ;
32
33
import java .util .HashMap ;
@@ -157,25 +158,24 @@ void matchingRef(Class<?> referenceClass, Flag referenceFlag, Class<? extends Mi
157
158
158
159
private static Stream <Arguments > methodMatchProvider () {
159
160
return Stream .of (
160
- Arguments .of ("method" , "(Ljava/lang/String;)Ljava/lang/String;" , "" , Nested .B .class , null ),
161
- Arguments .of ("hashCode" , "()I" , "" , Nested .B .class , null ),
162
- Arguments .of ("someMethod" , "()V" , "" , Nested .SomeInterface .class , null ),
163
- Arguments .of ("privateStuff" , "()V" , " PRIVATE_OR_HIGHER" , Nested .B .class , null ),
164
- Arguments .of ("privateStuff" , "()V" , " PROTECTED_OR_HIGHER" , Nested .B2 .class , Mismatch .MissingFlag .class ),
165
- Arguments .of ("staticMethod" , "()V" , " NON_STATIC" , Nested .B .class , Mismatch .MissingFlag .class ),
166
- Arguments .of ("missingMethod" , "()V" , "" , Nested .B .class , Mismatch .MissingMethod .class ));
161
+ Arguments .of ("method" , "(Ljava/lang/String;)Ljava/lang/String;" , emptySet () , Nested .B .class , null ),
162
+ Arguments .of ("hashCode" , "()I" , emptySet () , Nested .B .class , null ),
163
+ Arguments .of ("someMethod" , "()V" , emptySet () , Nested .SomeInterface .class , null ),
164
+ Arguments .of ("privateStuff" , "()V" , singleton ( PRIVATE_OR_HIGHER ) , Nested .B .class , null ),
165
+ Arguments .of ("privateStuff" , "()V" , singleton ( PROTECTED_OR_HIGHER ) , Nested .B2 .class , Mismatch .MissingFlag .class ),
166
+ Arguments .of ("staticMethod" , "()V" , singleton ( NON_STATIC ) , Nested .B .class , Mismatch .MissingFlag .class ),
167
+ Arguments .of ("missingMethod" , "()V" , emptySet () , Nested .B .class , Mismatch .MissingMethod .class ));
167
168
}
168
169
169
170
@ ParameterizedTest
170
171
@ MethodSource ("methodMatchProvider" )
171
172
void methodMatch (
172
173
String methodName ,
173
174
String methodDesc ,
174
- String methodFlagsStr ,
175
+ Set < Flag > methodFlags ,
175
176
Class <?> classToCheck ,
176
177
Class <? extends Mismatch > expectedMismatch ) {
177
178
Type methodType = Type .getMethodType (methodDesc );
178
- List <Flag > methodFlags = parseMethodFlags (methodFlagsStr );
179
179
180
180
ClassRef reference =
181
181
ClassRef .builder (classToCheck .getName ())
@@ -200,26 +200,24 @@ void methodMatch(
200
200
201
201
private static Stream <Arguments > fieldMatchProvider () {
202
202
return Stream .of (
203
- Arguments .of ("missingField" , "Ljava/lang/String;" , "" , Nested .A .class , Mismatch .MissingField .class ),
204
- Arguments .of ("privateField" , "Ljava/lang/String;" , "" , Nested .A .class , Mismatch .MissingField .class ),
205
- Arguments .of ("privateField" , "Ljava/lang/Object;" , " PRIVATE_OR_HIGHER" , Nested .A .class , null ),
206
- Arguments .of ("privateField" , "Ljava/lang/Object;" , " PROTECTED_OR_HIGHER" , Nested .A2 .class , Mismatch .MissingFlag .class ),
207
- Arguments .of ("protectedField" , "Ljava/lang/Object;" , " STATIC" , Nested .A .class , Mismatch .MissingFlag .class ),
208
- Arguments .of ("staticB" , "Lmuzzle/TestClasses$Nested$B;" , " STATIC| PROTECTED_OR_HIGHER" , Nested .A .class , null ),
209
- Arguments .of ("number" , "I" , " PACKAGE_OR_HIGHER" , Nested .Primitives .class , null ),
210
- Arguments .of ("flag" , "Z" , " PACKAGE_OR_HIGHER" , Nested .Primitives .class , null ));
203
+ Arguments .of ("missingField" , "Ljava/lang/String;" , emptySet () , Nested .A .class , Mismatch .MissingField .class ),
204
+ Arguments .of ("privateField" , "Ljava/lang/String;" , emptySet () , Nested .A .class , Mismatch .MissingField .class ),
205
+ Arguments .of ("privateField" , "Ljava/lang/Object;" , singleton ( PRIVATE_OR_HIGHER ) , Nested .A .class , null ),
206
+ Arguments .of ("privateField" , "Ljava/lang/Object;" , singleton ( PROTECTED_OR_HIGHER ) , Nested .A2 .class , Mismatch .MissingFlag .class ),
207
+ Arguments .of ("protectedField" , "Ljava/lang/Object;" , singleton ( STATIC ) , Nested .A .class , Mismatch .MissingFlag .class ),
208
+ Arguments .of ("staticB" , "Lmuzzle/TestClasses$Nested$B;" , new HashSet <>( Arrays . asList ( STATIC , PROTECTED_OR_HIGHER )) , Nested .A .class , null ),
209
+ Arguments .of ("number" , "I" , singleton ( PACKAGE_OR_HIGHER ) , Nested .Primitives .class , null ),
210
+ Arguments .of ("flag" , "Z" , singleton ( PACKAGE_OR_HIGHER ) , Nested .Primitives .class , null ));
211
211
}
212
212
213
213
@ ParameterizedTest
214
214
@ MethodSource ("fieldMatchProvider" )
215
215
void fieldMatch (
216
216
String fieldName ,
217
217
String fieldType ,
218
- String fieldFlagsStr ,
218
+ Set < Flag > fieldFlags ,
219
219
Class <?> classToCheck ,
220
220
Class <? extends Mismatch > expectedMismatch ) {
221
- List <Flag > fieldFlags = parseFieldFlags (fieldFlagsStr );
222
-
223
221
ClassRef reference =
224
222
ClassRef .builder (classToCheck .getName ())
225
223
.addField (
@@ -474,41 +472,4 @@ private static Set<Class<? extends Mismatch>> getMismatchClassSet(List<Mismatch>
474
472
}
475
473
return mismatchClasses ;
476
474
}
477
-
478
- private static List <Flag > parseMethodFlags (String flagsStr ) {
479
- if (flagsStr .isEmpty ()) {
480
- return Collections .emptyList ();
481
- }
482
- List <Flag > flags = new ArrayList <>();
483
- if (flagsStr .contains ("PRIVATE_OR_HIGHER" )) {
484
- flags .add (PRIVATE_OR_HIGHER );
485
- }
486
- if (flagsStr .contains ("PROTECTED_OR_HIGHER" )) {
487
- flags .add (PROTECTED_OR_HIGHER );
488
- }
489
- if (flagsStr .contains ("NON_STATIC" )) {
490
- flags .add (NON_STATIC );
491
- }
492
- return flags ;
493
- }
494
-
495
- private static List <Flag > parseFieldFlags (String flagsStr ) {
496
- if (flagsStr .isEmpty ()) {
497
- return Collections .emptyList ();
498
- }
499
- List <Flag > flags = new ArrayList <>();
500
- if (flagsStr .contains ("PRIVATE_OR_HIGHER" )) {
501
- flags .add (PRIVATE_OR_HIGHER );
502
- }
503
- if (flagsStr .contains ("PROTECTED_OR_HIGHER" )) {
504
- flags .add (PROTECTED_OR_HIGHER );
505
- }
506
- if (flagsStr .contains ("PACKAGE_OR_HIGHER" )) {
507
- flags .add (PACKAGE_OR_HIGHER );
508
- }
509
- if (flagsStr .contains ("STATIC" )) {
510
- flags .add (STATIC );
511
- }
512
- return flags ;
513
- }
514
475
}
0 commit comments