2424import java .util .function .Supplier ;
2525
2626import org .hibernate .testing .bytecode .enhancement .extension .BytecodeEnhanced ;
27- import org .hibernate .testing .junit4 .BaseUnitTestCase ;
2827import org .junit .jupiter .api .Assertions ;
2928import org .junit .jupiter .api .ClassOrderer ;
3029import org .junit .jupiter .api .DisplayNameGenerator ;
3130import org .junit .jupiter .api .MethodOrderer ;
3231import org .junit .jupiter .api .TestInstance ;
3332import org .junit .jupiter .api .extension .ExecutionCondition ;
33+ import org .junit .jupiter .api .extension .Extension ;
3434import org .junit .jupiter .api .extension .ExtensionContext ;
35+ import org .junit .jupiter .api .extension .TestInstantiationAwareExtension ;
3536import org .junit .jupiter .api .io .CleanupMode ;
3637import org .junit .jupiter .api .io .TempDirFactory ;
3738import org .junit .jupiter .api .parallel .ExecutionMode ;
4849import org .junit .platform .engine .ExecutionRequest ;
4950import org .junit .platform .engine .TestDescriptor ;
5051import org .junit .platform .engine .UniqueId ;
52+ import org .junit .platform .engine .reporting .OutputDirectoryProvider ;
5153import org .junit .platform .engine .support .hierarchical .EngineExecutionContext ;
5254import org .junit .platform .engine .support .hierarchical .HierarchicalTestEngine ;
5355import org .junit .platform .engine .support .hierarchical .ThrowableCollector ;
@@ -118,7 +120,7 @@ public TestDescriptor discover(EngineDiscoveryRequest discoveryRequest, UniqueId
118120 }
119121
120122 private void addEnhancementCheck (boolean enhance , String [] testEnhancedClasses ,
121- ClassBasedTestDescriptor descriptor , JupiterConfiguration jc ) {
123+ ClassBasedTestDescriptor descriptor , JupiterConfiguration jc ) {
122124 if ( testEnhancedClasses .length > 0 ) {
123125 descriptor .addChild ( new EnhancementWorkedCheckMethodTestDescriptor (
124126 UniqueId .forEngine ( getId () )
@@ -127,6 +129,7 @@ private void addEnhancementCheck(boolean enhance, String[] testEnhancedClasses,
127129 descriptor .getTestClass ().getName ()
128130 ),
129131 descriptor .getTestClass (),
132+ descriptor ::getEnclosingTestClasses ,
130133 jc ,
131134 enhance ,
132135 testEnhancedClasses
@@ -135,14 +138,14 @@ private void addEnhancementCheck(boolean enhance, String[] testEnhancedClasses,
135138 }
136139
137140 private void replaceWithEnhanced (Class <?> enhanced , ClassBasedTestDescriptor descriptor , JupiterConfiguration jc ,
138- Set <? extends TestDescriptor > children , TestDescriptor parent , String [] testEnhancedClasses )
141+ Set <? extends TestDescriptor > children , TestDescriptor parent , String [] testEnhancedClasses )
139142 throws NoSuchMethodException {
140143 replaceWithEnhanced ( enhanced , descriptor , jc , children , parent , testEnhancedClasses , null );
141144 }
142145
143146 private void replaceWithEnhanced (Class <?> enhanced , ClassBasedTestDescriptor descriptor , JupiterConfiguration jc ,
144- Set <? extends TestDescriptor > children , TestDescriptor parent , String [] testEnhancedClasses ,
145- Object enhancementContextId )
147+ Set <? extends TestDescriptor > children , TestDescriptor parent , String [] testEnhancedClasses ,
148+ Object enhancementContextId )
146149 throws NoSuchMethodException {
147150 DelegatingJupiterConfiguration configuration = new DelegatingJupiterConfiguration ( jc , enhancementContextId );
148151
@@ -162,6 +165,7 @@ private void replaceWithEnhanced(Class<?> enhanced, ClassBasedTestDescriptor des
162165 convertUniqueId ( child .getUniqueId (), enhancementContextId ),
163166 updated .getTestClass (),
164167 findMethodReplacement ( updated , testMethod ),
168+ updated ::getEnclosingTestClasses ,
165169 configuration
166170 )
167171 );
@@ -173,6 +177,7 @@ private void replaceWithEnhanced(Class<?> enhanced, ClassBasedTestDescriptor des
173177 convertUniqueId ( child .getUniqueId (), enhancementContextId ),
174178 updated .getTestClass (),
175179 findMethodReplacement ( updated , testMethod ),
180+ updated ::getEnclosingTestClasses ,
176181 configuration
177182 ) );
178183 }
@@ -251,6 +256,11 @@ private DelegatingJupiterConfiguration(JupiterConfiguration configuration, Objec
251256 );
252257 }
253258
259+ @ Override
260+ public Predicate <Class <? extends Extension >> getFilterForAutoDetectedExtensions () {
261+ return configuration .getFilterForAutoDetectedExtensions ();
262+ }
263+
254264 @ Override
255265 public Optional <String > getRawConfigurationParameter (String s ) {
256266 return configuration .getRawConfigurationParameter ( s );
@@ -276,6 +286,11 @@ public boolean isExtensionAutoDetectionEnabled() {
276286 return configuration .isExtensionAutoDetectionEnabled ();
277287 }
278288
289+ @ Override
290+ public boolean isThreadDumpOnTimeoutEnabled () {
291+ return configuration .isThreadDumpOnTimeoutEnabled ();
292+ }
293+
279294 @ Override
280295 public ExecutionMode getDefaultExecutionMode () {
281296 return configuration .getDefaultExecutionMode ();
@@ -320,6 +335,16 @@ public CleanupMode getDefaultTempDirCleanupMode() {
320335 public Supplier <TempDirFactory > getDefaultTempDirFactorySupplier () {
321336 return configuration .getDefaultTempDirFactorySupplier ();
322337 }
338+
339+ @ Override
340+ public TestInstantiationAwareExtension .ExtensionContextScope getDefaultTestInstantiationExtensionContextScope () {
341+ return configuration .getDefaultTestInstantiationExtensionContextScope ();
342+ }
343+
344+ @ Override
345+ public OutputDirectoryProvider getOutputDirectoryProvider () {
346+ return configuration .getOutputDirectoryProvider ();
347+ }
323348 }
324349
325350 private static class DelegatingDisplayNameGenerator implements DisplayNameGenerator {
@@ -342,13 +367,13 @@ private String prefix() {
342367 }
343368
344369 @ Override
345- public String generateDisplayNameForNestedClass (Class <?> aClass ) {
346- return prefix () + delegate .generateDisplayNameForNestedClass ( aClass );
370+ public String generateDisplayNameForNestedClass (List < Class <?>> enclosingInstanceTypes , Class <?> nestedClass ) {
371+ return prefix () + delegate .generateDisplayNameForNestedClass ( enclosingInstanceTypes , nestedClass );
347372 }
348373
349374 @ Override
350- public String generateDisplayNameForMethod (Class <?> aClass , Method method ) {
351- return prefix () + delegate .generateDisplayNameForMethod ( aClass , method );
375+ public String generateDisplayNameForMethod (List < Class <?>> enclosingInstanceTypes , Class <?> testClass , Method testMethod ) {
376+ return prefix () + delegate .generateDisplayNameForMethod ( enclosingInstanceTypes , testClass , testMethod );
352377 }
353378 }
354379
@@ -357,12 +382,11 @@ private static class EnhancementWorkedCheckMethodTestDescriptor extends TestMeth
357382 private final boolean enhanced ;
358383 private final String [] classes ;
359384
360- public EnhancementWorkedCheckMethodTestDescriptor (UniqueId uniqueId , Class <?> testClass ,
361- JupiterConfiguration configuration ,
362- boolean enhanced , String [] classes ) {
385+ public EnhancementWorkedCheckMethodTestDescriptor (UniqueId uniqueId , Class <?> testClass , Supplier <List <Class <?>>> enclosingInstanceTypes , JupiterConfiguration configuration , boolean enhanced , String [] classes ) {
363386 super (
364387 prepareId ( uniqueId , testMethod ( enhanced ) ),
365388 testClass , testMethod ( enhanced ),
389+ enclosingInstanceTypes ,
366390 configuration
367391 );
368392 this .enhanced = enhanced ;
@@ -375,7 +399,7 @@ private static Method testMethod(boolean enhanced) {
375399
376400 @ Override
377401 public JupiterEngineExecutionContext execute (JupiterEngineExecutionContext context ,
378- DynamicTestExecutor dynamicTestExecutor ) {
402+ DynamicTestExecutor dynamicTestExecutor ) {
379403 ExtensionContext extensionContext = context .getExtensionContext ();
380404 ThrowableCollector throwableCollector = context .getThrowableCollector ();
381405
0 commit comments