Class TestParametersSupport

java.lang.Object
ru.vyarus.dropwizard.guice.test.jupiter.ext.TestParametersSupport
All Implemented Interfaces:
org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.TestInstantiationAwareExtension
Direct Known Subclasses:
GuiceyExtensionsSupport

public abstract class TestParametersSupport extends Object implements org.junit.jupiter.api.extension.ParameterResolver
Base class for junit 5 extensions. Supports direct injection of test parameters:
  • Application or exact application class
  • ObjectMapper
  • ClientSupport application web client helper
  • DropwizardTestSupport support object itself
  • ExtensionContext junit extension context
  • Any existing guice binding (possibly with qualifier annotation or generified)
  • Jit annotated parameter will be obtained from guice context (assume JIT binding)
Overall, it provides everything DropwizardTestSupport provides plus guice-managed beans.
Since:
29.04.2020
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension

    org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract ClientSupport
    getClient(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
     
    protected abstract Optional<com.google.inject.Injector>
    getInjector(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
     
    protected abstract io.dropwizard.testing.DropwizardTestSupport<?>
    getSupport(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
     
    resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
     
    boolean
    supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension

    getTestInstantiationExtensionContextScope
  • Constructor Details

    • TestParametersSupport

      public TestParametersSupport()
  • Method Details

    • supportsParameter

      public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException
      Specified by:
      supportsParameter in interface org.junit.jupiter.api.extension.ParameterResolver
      Throws:
      org.junit.jupiter.api.extension.ParameterResolutionException
    • resolveParameter

      public Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException
      Specified by:
      resolveParameter in interface org.junit.jupiter.api.extension.ParameterResolver
      Throws:
      org.junit.jupiter.api.extension.ParameterResolutionException
    • getSupport

      protected abstract io.dropwizard.testing.DropwizardTestSupport<?> getSupport(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
      Parameters:
      extensionContext - junit extension context
      Returns:
      dropwizard test support object assigned to test instance or null
    • getClient

      protected abstract ClientSupport getClient(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
      Parameters:
      extensionContext - junit extension context
      Returns:
      client factory object assigned to test instance or null
    • getInjector

      protected abstract Optional<com.google.inject.Injector> getInjector(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
      Parameters:
      extensionContext - junit extension context
      Returns:
      application injector or null