Class AutoCloseExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.TestInstancePreDestroyCallback

    class AutoCloseExtension
    extends java.lang.Object
    implements org.junit.jupiter.api.extension.TestInstancePreDestroyCallback, org.junit.jupiter.api.extension.AfterAllCallback
    AutoCloseExtension is a JUnit Jupiter extension that closes resources if a field in a test class is annotated with @AutoClose.

    Consult the Javadoc for @AutoClose for details on the contract.

    Since:
    5.11
    See Also:
    AutoClose
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static org.junit.platform.commons.logging.Logger logger  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void afterAll​(org.junit.jupiter.api.extension.ExtensionContext context)  
      private static void checkCondition​(boolean condition, java.lang.String messageFormat, java.lang.reflect.Field field)  
      private static void closeField​(java.lang.reflect.Field field, java.lang.Object testInstance)  
      private static void closeFields​(java.lang.Class<?> testClass, java.lang.Object testInstance, ThrowableCollector throwableCollector)  
      private static java.lang.String getQualifiedName​(java.lang.reflect.Field field)  
      private static void invokeCloseMethod​(java.lang.reflect.Field field, java.lang.Object target, java.lang.String methodName)  
      void preDestroyTestInstance​(org.junit.jupiter.api.extension.ExtensionContext context)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • logger

        private static final org.junit.platform.commons.logging.Logger logger
    • Constructor Detail

      • AutoCloseExtension

        AutoCloseExtension()
    • Method Detail

      • preDestroyTestInstance

        public void preDestroyTestInstance​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        preDestroyTestInstance in interface org.junit.jupiter.api.extension.TestInstancePreDestroyCallback
      • afterAll

        public void afterAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback
      • closeFields

        private static void closeFields​(java.lang.Class<?> testClass,
                                        java.lang.Object testInstance,
                                        ThrowableCollector throwableCollector)
      • closeField

        private static void closeField​(java.lang.reflect.Field field,
                                       java.lang.Object testInstance)
                                throws java.lang.Exception
        Throws:
        java.lang.Exception
      • invokeCloseMethod

        private static void invokeCloseMethod​(java.lang.reflect.Field field,
                                              java.lang.Object target,
                                              java.lang.String methodName)
                                       throws java.lang.Exception
        Throws:
        java.lang.Exception
      • checkCondition

        private static void checkCondition​(boolean condition,
                                           java.lang.String messageFormat,
                                           java.lang.reflect.Field field)
      • getQualifiedName

        private static java.lang.String getQualifiedName​(java.lang.reflect.Field field)