Class TimeoutExtension
- java.lang.Object
-
- org.junit.jupiter.engine.extension.TimeoutExtension
-
- All Implemented Interfaces:
org.junit.jupiter.api.extension.BeforeAllCallback
,org.junit.jupiter.api.extension.BeforeEachCallback
,org.junit.jupiter.api.extension.Extension
,org.junit.jupiter.api.extension.InvocationInterceptor
class TimeoutExtension extends java.lang.Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.InvocationInterceptor
- Since:
- 5.5
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
TimeoutExtension.TimeoutProvider
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
DISABLED_MODE_VALUE
private static java.lang.String
DISABLED_ON_DEBUG_MODE_VALUE
private static java.lang.String
ENABLED_MODE_VALUE
private static java.lang.String
GLOBAL_TIMEOUT_CONFIG_KEY
private static org.junit.jupiter.api.extension.ExtensionContext.Namespace
NAMESPACE
private static java.lang.String
TESTABLE_METHOD_TIMEOUT_KEY
private static java.lang.String
TESTABLE_METHOD_TIMEOUT_THREAD_MODE_KEY
-
Constructor Summary
Constructors Constructor Description TimeoutExtension()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
void
beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
private <T> org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T>
decorate(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutDuration timeout)
private java.lang.String
describe(org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
private org.junit.jupiter.api.Timeout.ThreadMode
getAnnotationThreadMode(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
private TimeoutDuration
getDefaultTimeout(org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutExtension.TimeoutProvider defaultTimeoutProvider)
private TimeoutConfiguration
getGlobalTimeoutConfiguration(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
private <T> T
intercept(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutDuration explicitTimeout, TimeoutExtension.TimeoutProvider defaultTimeoutProvider)
void
interceptAfterAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
interceptAfterEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
interceptBeforeAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
interceptBeforeEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
private void
interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutExtension.TimeoutProvider defaultTimeoutProvider)
private <T> T
interceptTestableMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutExtension.TimeoutProvider defaultTimeoutProvider)
<T> T
interceptTestFactoryMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
interceptTestMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
void
interceptTestTemplateMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
private boolean
isTimeoutDisabled(java.lang.String mode)
Determine if timeouts are disabled for the supplied mode.private boolean
isTimeoutDisabled(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
Determine if timeouts are disabled for the supplied extension context.private void
readAndStoreTimeoutSoChildrenInheritIt(org.junit.jupiter.api.extension.ExtensionContext context)
private java.util.Optional<TimeoutDuration>
readTimeoutFromAnnotation(java.util.Optional<java.lang.reflect.AnnotatedElement> element)
private java.util.Optional<org.junit.jupiter.api.Timeout.ThreadMode>
readTimeoutThreadModeFromAnnotation(java.util.Optional<java.lang.reflect.AnnotatedElement> element)
private org.junit.jupiter.api.Timeout.ThreadMode
resolveTimeoutThreadMode(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
-
-
Field Detail
-
NAMESPACE
private static final org.junit.jupiter.api.extension.ExtensionContext.Namespace NAMESPACE
-
TESTABLE_METHOD_TIMEOUT_KEY
private static final java.lang.String TESTABLE_METHOD_TIMEOUT_KEY
- See Also:
- Constant Field Values
-
TESTABLE_METHOD_TIMEOUT_THREAD_MODE_KEY
private static final java.lang.String TESTABLE_METHOD_TIMEOUT_THREAD_MODE_KEY
- See Also:
- Constant Field Values
-
GLOBAL_TIMEOUT_CONFIG_KEY
private static final java.lang.String GLOBAL_TIMEOUT_CONFIG_KEY
- See Also:
- Constant Field Values
-
ENABLED_MODE_VALUE
private static final java.lang.String ENABLED_MODE_VALUE
- See Also:
- Constant Field Values
-
DISABLED_MODE_VALUE
private static final java.lang.String DISABLED_MODE_VALUE
- See Also:
- Constant Field Values
-
DISABLED_ON_DEBUG_MODE_VALUE
private static final java.lang.String DISABLED_ON_DEBUG_MODE_VALUE
- See Also:
- Constant Field Values
-
-
Method Detail
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
- Specified by:
beforeAll
in interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
- Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
readAndStoreTimeoutSoChildrenInheritIt
private void readAndStoreTimeoutSoChildrenInheritIt(org.junit.jupiter.api.extension.ExtensionContext context)
-
interceptBeforeAllMethod
public void interceptBeforeAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws java.lang.Throwable
- Specified by:
interceptBeforeAllMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
java.lang.Throwable
-
interceptBeforeEachMethod
public void interceptBeforeEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws java.lang.Throwable
- Specified by:
interceptBeforeEachMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
java.lang.Throwable
-
interceptTestMethod
public void interceptTestMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws java.lang.Throwable
- Specified by:
interceptTestMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
java.lang.Throwable
-
interceptTestTemplateMethod
public void interceptTestTemplateMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws java.lang.Throwable
- Specified by:
interceptTestTemplateMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
java.lang.Throwable
-
interceptTestFactoryMethod
public <T> T interceptTestFactoryMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws java.lang.Throwable
- Specified by:
interceptTestFactoryMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
java.lang.Throwable
-
interceptAfterEachMethod
public void interceptAfterEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws java.lang.Throwable
- Specified by:
interceptAfterEachMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
java.lang.Throwable
-
interceptAfterAllMethod
public void interceptAfterAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws java.lang.Throwable
- Specified by:
interceptAfterAllMethod
in interfaceorg.junit.jupiter.api.extension.InvocationInterceptor
- Throws:
java.lang.Throwable
-
interceptLifecycleMethod
private void interceptLifecycleMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<java.lang.Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutExtension.TimeoutProvider defaultTimeoutProvider) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
readTimeoutFromAnnotation
private java.util.Optional<TimeoutDuration> readTimeoutFromAnnotation(java.util.Optional<java.lang.reflect.AnnotatedElement> element)
-
readTimeoutThreadModeFromAnnotation
private java.util.Optional<org.junit.jupiter.api.Timeout.ThreadMode> readTimeoutThreadModeFromAnnotation(java.util.Optional<java.lang.reflect.AnnotatedElement> element)
-
interceptTestableMethod
private <T> T interceptTestableMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutExtension.TimeoutProvider defaultTimeoutProvider) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
intercept
private <T> T intercept(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutDuration explicitTimeout, TimeoutExtension.TimeoutProvider defaultTimeoutProvider) throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
getDefaultTimeout
private TimeoutDuration getDefaultTimeout(org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutExtension.TimeoutProvider defaultTimeoutProvider)
-
getGlobalTimeoutConfiguration
private TimeoutConfiguration getGlobalTimeoutConfiguration(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
decorate
private <T> org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> decorate(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, TimeoutDuration timeout)
-
resolveTimeoutThreadMode
private org.junit.jupiter.api.Timeout.ThreadMode resolveTimeoutThreadMode(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
getAnnotationThreadMode
private org.junit.jupiter.api.Timeout.ThreadMode getAnnotationThreadMode(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
describe
private java.lang.String describe(org.junit.jupiter.api.extension.ReflectiveInvocationContext<java.lang.reflect.Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
isTimeoutDisabled
private boolean isTimeoutDisabled(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
Determine if timeouts are disabled for the supplied extension context.
-
isTimeoutDisabled
private boolean isTimeoutDisabled(java.lang.String mode)
Determine if timeouts are disabled for the supplied mode.
-
-