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

class TempDirectory extends Object implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.ParameterResolver
TempDirectory is a JUnit Jupiter extension that creates and cleans up temporary directories if field in a test class or a parameter in a lifecycle method or test method is annotated with @TempDir.

Consult the Javadoc for TempDir for details on the contract.

Since:
5.4
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • beforeAll

      public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
      Perform field injection for non-private, static fields (i.e., class fields) of type Path or File that are annotated with @TempDir.
      Specified by:
      beforeAll in interface org.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 type Path or File that are annotated with @TempDir.
      Specified by:
      beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
    • installFailureTracker

      private static void installFailureTracker(org.junit.jupiter.api.extension.ExtensionContext context)
    • injectStaticFields

      private void injectStaticFields(org.junit.jupiter.api.extension.ExtensionContext context, Class<?> testClass)
    • injectInstanceFields

      private void injectInstanceFields(org.junit.jupiter.api.extension.ExtensionContext context, Object instance)
    • injectFields

      private void injectFields(org.junit.jupiter.api.extension.ExtensionContext context, Object testInstance, Class<?> testClass, Predicate<Field> predicate)
    • supportsParameter

      public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
      Determine if the Parameter in the supplied ParameterContext is annotated with @TempDir.
      Specified by:
      supportsParameter in interface org.junit.jupiter.api.extension.ParameterResolver
    • resolveParameter

      public Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
      Resolve the current temporary directory for the Parameter in the supplied ParameterContext.
      Specified by:
      resolveParameter in interface org.junit.jupiter.api.extension.ParameterResolver
    • determineCleanupModeForField

      private org.junit.jupiter.api.io.CleanupMode determineCleanupModeForField(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(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 void assertNonFinalField(Field field)
    • assertSupportedType

      private void assertSupportedType(String target, Class<?> type)
    • getPathOrFile

      private Object getPathOrFile(org.junit.jupiter.api.extension.AnnotatedElementContext elementContext, Class<?> type, 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, 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)