Interface LifecycleContext

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      <T extends java.lang.annotation.Annotation>
      java.util.Optional<T>
      findAnnotation​(java.lang.Class<T> annotationClass)
      Retrieve an annotation if present at the current test element.
      <T extends java.lang.annotation.Annotation>
      java.util.List<T>
      findAnnotationsInContainer​(java.lang.Class<T> annotationClass)
      Retrieve an annotation if present in the current element's containers.
      java.lang.String label()
      The elements label under which it shows up in test reports and IDEs.
      <T> T newInstance​(java.lang.Class<T> clazz)
      Create a new instance of a clazz in the context of the property in which it is running.
      java.util.Optional<java.lang.Class<?>> optionalContainerClass()
      If the context refers to a class or a method the class or the method's class is returned, otherwise Optional.empty()
      java.util.Optional<java.lang.reflect.AnnotatedElement> optionalElement()
      If the context refers to a class or a method the class or method is returned, otherwise Optional.empty()
      Reporter reporter()
      Get hold of test reporter for publishing additional information on a test container or method.
      java.util.Optional<ResolveParameterHook.ParameterSupplier> resolveParameter​(java.lang.reflect.Executable executable, int index)
      Resolve a parameter from a method in the context of the property in which it is running.
      void wrapReporter​(java.util.function.Function<Reporter,​Reporter> wrapper)
      Wrap reporter instance
    • Method Detail

      • label

        java.lang.String label()
        The elements label under which it shows up in test reports and IDEs.
        Returns:
        a String
      • optionalElement

        java.util.Optional<java.lang.reflect.AnnotatedElement> optionalElement()
        If the context refers to a class or a method the class or method is returned, otherwise Optional.empty()
        Returns:
        an optional annotated element
      • optionalContainerClass

        java.util.Optional<java.lang.Class<?>> optionalContainerClass()
        If the context refers to a class or a method the class or the method's class is returned, otherwise Optional.empty()
        Returns:
        an optional annotated element
      • reporter

        Reporter reporter()
        Get hold of test reporter for publishing additional information on a test container or method.
        Returns:
        Current instance to test reporter
      • wrapReporter

        @API(status=EXPERIMENTAL,
             since="1.5.1")
        void wrapReporter​(java.util.function.Function<Reporter,​Reporter> wrapper)
        Wrap reporter instance
        Parameters:
        wrapper - Wrapping function that takes original reporter and returns a wrapped instance
      • findAnnotation

        <T extends java.lang.annotation.Annotation> java.util.Optional<T> findAnnotation​(java.lang.Class<T> annotationClass)
        Retrieve an annotation if present at the current test element.
        Type Parameters:
        T - The annotation type
        Parameters:
        annotationClass - The annotation type
        Returns:
        instance of annotation type
      • findAnnotationsInContainer

        <T extends java.lang.annotation.Annotation> java.util.List<T> findAnnotationsInContainer​(java.lang.Class<T> annotationClass)
        Retrieve an annotation if present in the current element's containers. Search up the container stack. Closest container annotations come first in list.
        Type Parameters:
        T - The annotation type
        Parameters:
        annotationClass - The annotation type
        Returns:
        list of annotation objects
      • newInstance

        <T> T newInstance​(java.lang.Class<T> clazz)
        Create a new instance of a clazz in the context of the property in which it is running. Use this method for instance when trying to instantiate a class retrieved from an annotation's attribute.

        The behaviour of this method differs from Class.newInstance() if the class to instantiate is a non-static member of the container class or even a nested container class.

        Type Parameters:
        T - The type to instantiate
        Parameters:
        clazz - The class to instantiate
        Returns:
        a freshly created instance of class clazz
      • resolveParameter

        java.util.Optional<ResolveParameterHook.ParameterSupplier> resolveParameter​(java.lang.reflect.Executable executable,
                                                                                    int index)
        Resolve a parameter from a method in the context of the property in which it is running.
        Parameters:
        executable - The executable of the test container the parameter of which should be resolved
        index - The parameter's position in a method - starting with 0.
        Returns:
        supplier instance
        Throws:
        CannotResolveParameterException - if parameter cannot be resolved