66import static org .mockito .Mockito .mock ;
77import static org .mockito .Mockito .when ;
88
9- import com .datadog .debugger .agent .ThirdPartyLibraries ;
109import datadog .trace .api .Config ;
10+ import java .util .Arrays ;
1111import java .util .Collections ;
1212import java .util .HashSet ;
1313import java .util .Set ;
@@ -52,15 +52,18 @@ public void testIncludeOverridesExclude() {
5252 ClassNameFiltering classNameFiltering =
5353 new ClassNameFiltering (
5454 Collections .singleton ("com.datadog.debugger" ),
55- Collections .singleton ("com.datadog.debugger" ));
55+ Collections .singleton ("com.datadog.debugger" ),
56+ Collections .emptySet ());
5657 assertFalse (classNameFiltering .isExcluded ("com.datadog.debugger.FooBar" ));
5758 }
5859
5960 @ Test
6061 public void testIncludePrefixOverridesExclude () {
6162 ClassNameFiltering classNameFiltering =
6263 new ClassNameFiltering (
63- Collections .singleton ("com.datadog.debugger" ), Collections .singleton ("com.datadog" ));
64+ Collections .singleton ("com.datadog.debugger" ),
65+ Collections .singleton ("com.datadog" ),
66+ Collections .emptySet ());
6467 assertFalse (classNameFiltering .isExcluded ("com.datadog.debugger.FooBar" ));
6568 }
6669
@@ -69,7 +72,8 @@ public void testIncludeSomeExcludeSome() {
6972 ClassNameFiltering classNameFiltering =
7073 new ClassNameFiltering (
7174 Stream .of ("com.datadog.debugger" , "org.junit" ).collect (Collectors .toSet ()),
72- Collections .singleton ("com.datadog.debugger" ));
75+ Collections .singleton ("com.datadog.debugger" ),
76+ Collections .emptySet ());
7377 assertFalse (classNameFiltering .isExcluded ("com.datadog.debugger.FooBar" ));
7478 assertTrue (classNameFiltering .isExcluded ("org.junit.FooBar" ));
7579 }
@@ -88,11 +92,25 @@ public void testExcludeDefaults(String input) {
8892 Config config = mock (Config .class );
8993 when (config .getThirdPartyExcludes ()).thenReturn (Collections .emptySet ());
9094 when (config .getThirdPartyIncludes ()).thenReturn (Collections .emptySet ());
91- ClassNameFiltering classNameFiltering =
92- new ClassNameFiltering (ThirdPartyLibraries . INSTANCE . getThirdPartyLibraries ( config ) );
95+ when ( config . getThirdPartyShadingIdentifiers ()). thenReturn ( Collections . emptySet ());
96+ ClassNameFiltering classNameFiltering = new ClassNameFiltering (config );
9397 assertTrue (classNameFiltering .isExcluded (input ));
9498 }
9599
100+ @ Test
101+ public void testShaded () {
102+ Config config = mock (Config .class );
103+ when (config .getThirdPartyExcludes ()).thenReturn (Collections .emptySet ());
104+ when (config .getThirdPartyIncludes ())
105+ .thenReturn (new HashSet <>(Arrays .asList ("com.google" , "org.junit" )));
106+ when (config .getThirdPartyShadingIdentifiers ()).thenReturn (Collections .emptySet ());
107+ ClassNameFiltering classNameFiltering = new ClassNameFiltering (config );
108+ assertTrue (classNameFiltering .isExcluded ("com.google.FooBar" ));
109+ assertTrue (classNameFiltering .isExcluded ("shaded.com.google.FooBar" ));
110+ assertFalse (classNameFiltering .isExcluded ("com.example.shaded.com.example.FooBar" ));
111+ assertTrue (classNameFiltering .isExcluded ("com.example.shaded.com.google.FooBar" ));
112+ }
113+
96114 @ Test
97115 void lambdaProxyClasses () {
98116 // jdk8: at
0 commit comments