Class TempDirectory
- java.lang.Object
-
- org.junit.jupiter.engine.extension.TempDirectory
-
- 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.ParameterResolver,org.junit.jupiter.api.extension.TestInstantiationAwareExtension
class TempDirectory extends java.lang.Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.ParameterResolverTempDirectoryis a JUnit Jupiter extension that creates and cleans up temporary directories if a field in a test class or a parameter in a test class constructor, lifecycle method, or test method is annotated with@TempDir.Consult the Javadoc for
TempDirfor details on the contract.- Since:
- 5.4
- See Also:
@TempDir,Files.createTempDirectory(java.nio.file.Path, java.lang.String, java.nio.file.attribute.FileAttribute<?>...)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classTempDirectory.CloseablePathprivate static classTempDirectory.FailureTrackerprivate static classTempDirectory.FieldContext(package private) static interfaceTempDirectory.FileOperations(package private) static classTempDirectory.Scope
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringCHILD_FAILEDprivate JupiterConfigurationconfigurationprivate static java.lang.StringFAILURE_TRACKER(package private) static java.lang.StringFILE_OPERATIONS_KEYprivate static java.lang.StringKEY(package private) static org.junit.jupiter.api.extension.ExtensionContext.NamespaceNAMESPACE
-
Constructor Summary
Constructors Constructor Description TempDirectory(JupiterConfiguration configuration)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidassertNonFinalField(java.lang.reflect.Field field)private static voidassertSupportedType(java.lang.String target, java.lang.Class<?> type)voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext context)Perform field injection for non-private,staticfields (i.e., class fields) of typePathorFilethat are annotated with@TempDir.voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext context)Perform field injection for non-private, non-static fields (i.e., instance fields) of typePathorFilethat are annotated with@TempDir.(package private) static TempDirectory.CloseablePathcreateTempDir(org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, java.lang.Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)private org.junit.jupiter.api.io.CleanupModedetermineCleanupMode(org.junit.jupiter.api.io.TempDir tempDir)private org.junit.jupiter.api.io.CleanupModedetermineCleanupModeForField(java.lang.reflect.Field field)private org.junit.jupiter.api.io.CleanupModedetermineCleanupModeForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext)private org.junit.jupiter.api.io.TempDirFactorydetermineTempDirFactory(org.junit.jupiter.api.io.TempDir tempDir, TempDirectory.Scope scope)private org.junit.jupiter.api.io.TempDirFactorydetermineTempDirFactoryForField(java.lang.reflect.Field field, TempDirectory.Scope scope)private org.junit.jupiter.api.io.TempDirFactorydetermineTempDirFactoryForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, TempDirectory.Scope scope)private static org.junit.jupiter.api.extension.ExtensionContext.StoregetContextSpecificStore(org.junit.jupiter.api.extension.ExtensionContext context)private static java.lang.ObjectgetPathOrFile(java.lang.Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, TempDirectory.Scope scope, org.junit.jupiter.api.extension.ExtensionContext extensionContext)private TempDirectory.ScopegetScope(org.junit.jupiter.api.extension.ExtensionContext context)org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScopegetTestInstantiationExtensionContextScope(org.junit.jupiter.api.extension.ExtensionContext rootContext)private voidinjectFields(org.junit.jupiter.api.extension.ExtensionContext context, java.lang.Object testInstance, java.lang.Class<?> testClass, java.util.function.Predicate<java.lang.reflect.Field> predicate)private voidinjectInstanceFields(org.junit.jupiter.api.extension.ExtensionContext context, java.lang.Object instance)private voidinjectStaticFields(org.junit.jupiter.api.extension.ExtensionContext context, java.lang.Class<?> testClass)private static voidinstallFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context)private static voidinstallFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context, org.junit.jupiter.api.extension.ExtensionContext parentContext)java.lang.ObjectresolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)Resolve the current temporary directory for theParameterin the suppliedParameterContext.private static booleanselfOrChildFailed(org.junit.jupiter.api.extension.ExtensionContext context)booleansupportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)Determine if theParameterin the suppliedParameterContextis annotated with@TempDir.
-
-
-
Field Detail
-
NAMESPACE
static final org.junit.jupiter.api.extension.ExtensionContext.Namespace NAMESPACE
-
FILE_OPERATIONS_KEY
static final java.lang.String FILE_OPERATIONS_KEY
- See Also:
- Constant Field Values
-
KEY
private static final java.lang.String KEY
- See Also:
- Constant Field Values
-
FAILURE_TRACKER
private static final java.lang.String FAILURE_TRACKER
- See Also:
- Constant Field Values
-
CHILD_FAILED
private static final java.lang.String CHILD_FAILED
- See Also:
- Constant Field Values
-
configuration
private final JupiterConfiguration configuration
-
-
Constructor Detail
-
TempDirectory
public TempDirectory(JupiterConfiguration configuration)
-
-
Method Detail
-
getTestInstantiationExtensionContextScope
public org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope getTestInstantiationExtensionContextScope(org.junit.jupiter.api.extension.ExtensionContext rootContext)
- Specified by:
getTestInstantiationExtensionContextScopein interfaceorg.junit.jupiter.api.extension.TestInstantiationAwareExtension
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
Perform field injection for non-private,staticfields (i.e., class fields) of typePathorFilethat are annotated with@TempDir.- Specified by:
beforeAllin interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
Perform field injection for non-private, non-static fields (i.e., instance fields) of typePathorFilethat are annotated with@TempDir.- Specified by:
beforeEachin interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
installFailureTracker
private static void installFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context)
-
installFailureTracker
private static void installFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context, org.junit.jupiter.api.extension.ExtensionContext parentContext)
-
injectStaticFields
private void injectStaticFields(org.junit.jupiter.api.extension.ExtensionContext context, java.lang.Class<?> testClass)
-
injectInstanceFields
private void injectInstanceFields(org.junit.jupiter.api.extension.ExtensionContext context, java.lang.Object instance)
-
injectFields
private void injectFields(org.junit.jupiter.api.extension.ExtensionContext context, java.lang.Object testInstance, java.lang.Class<?> testClass, java.util.function.Predicate<java.lang.reflect.Field> predicate)
-
supportsParameter
public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)Determine if theParameterin the suppliedParameterContextis annotated with@TempDir.- Specified by:
supportsParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver
-
resolveParameter
public java.lang.Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)Resolve the current temporary directory for theParameterin the suppliedParameterContext.- Specified by:
resolveParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver
-
determineCleanupModeForField
private org.junit.jupiter.api.io.CleanupMode determineCleanupModeForField(java.lang.reflect.Field field)
-
determineCleanupModeForParameter
private org.junit.jupiter.api.io.CleanupMode determineCleanupModeForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext)
-
determineCleanupMode
private org.junit.jupiter.api.io.CleanupMode determineCleanupMode(org.junit.jupiter.api.io.TempDir tempDir)
-
getScope
private TempDirectory.Scope getScope(org.junit.jupiter.api.extension.ExtensionContext context)
-
determineTempDirFactoryForField
private org.junit.jupiter.api.io.TempDirFactory determineTempDirFactoryForField(java.lang.reflect.Field field, TempDirectory.Scope scope)
-
determineTempDirFactoryForParameter
private org.junit.jupiter.api.io.TempDirFactory determineTempDirFactoryForParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, TempDirectory.Scope scope)
-
determineTempDirFactory
private org.junit.jupiter.api.io.TempDirFactory determineTempDirFactory(org.junit.jupiter.api.io.TempDir tempDir, TempDirectory.Scope scope)
-
assertNonFinalField
private static void assertNonFinalField(java.lang.reflect.Field field)
-
assertSupportedType
private static void assertSupportedType(java.lang.String target, java.lang.Class<?> type)
-
getPathOrFile
private static java.lang.Object getPathOrFile(java.lang.Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, TempDirectory.Scope scope, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
createTempDir
static TempDirectory.CloseablePath createTempDir(org.junit.jupiter.api.io.TempDirFactory factory, org.junit.jupiter.api.io.CleanupMode cleanupMode, java.lang.Class<?> elementType, org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
selfOrChildFailed
private static boolean selfOrChildFailed(org.junit.jupiter.api.extension.ExtensionContext context)
-
getContextSpecificStore
private static org.junit.jupiter.api.extension.ExtensionContext.Store getContextSpecificStore(org.junit.jupiter.api.extension.ExtensionContext context)
-
-