Class InternalFlowableExtension

java.lang.Object
org.flowable.engine.impl.test.InternalFlowableExtension
All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver
Direct Known Subclasses:
InternalFlowableSpringExtension, PluggableFlowableExtension, ResourceFlowableExtension

public abstract class InternalFlowableExtension extends Object implements org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.ParameterResolver
Base internal extension for JUnit Jupiter. This is a basis for other internal extensions. It allows:
  • Performs a deployment before each test when a test method is annotated with Deployment
  • Validates the history data after each test
  • Delete history jobs and deployment after each test
  • Assert and ensure a clean db after each test or after all tests (depending on the TestInstance.Lifecycle.
  • Support for injecting the ProcessEngine, services, ProcessEngineConfiguration and the id of the deployment done via Deployment into test methods and lifecycle methods within tests.
Author:
Filip Hrisafov
  • Field Details

    • ANNOTATION_DEPLOYMENT_ID_KEY

      protected static final String ANNOTATION_DEPLOYMENT_ID_KEY
      See Also:
    • logger

      protected final org.slf4j.Logger logger
  • Constructor Details

    • InternalFlowableExtension

      public InternalFlowableExtension()
  • Method Details

    • beforeEach

      public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
      Specified by:
      beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
    • afterEach

      public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      Specified by:
      afterEach in interface org.junit.jupiter.api.extension.AfterEachCallback
      Throws:
      Exception
    • afterAll

      public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      Specified by:
      afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback
      Throws:
      Exception
    • doFinally

      protected void doFinally(org.junit.jupiter.api.extension.ExtensionContext context, org.junit.jupiter.api.TestInstance.Lifecycle lifecycleForClean)
    • cleanTestAndAssertAndEnsureCleanDb

      protected void cleanTestAndAssertAndEnsureCleanDb(org.junit.jupiter.api.extension.ExtensionContext context, ProcessEngine processEngine)
    • assertAndEnsureCleanDb

      protected void assertAndEnsureCleanDb(ProcessEngine processEngine, org.junit.jupiter.api.extension.ExtensionContext context, EnsureCleanDb ensureCleanDb)
      Each test is assumed to clean up all DB content it entered. After a test method executed, this method scans all tables to see if the DB is completely clean. It throws AssertionFailed in case the DB is not clean. If the DB is not clean, it is cleaned by performing a create a drop.
    • removeDeployments

      protected void removeDeployments(RepositoryService repositoryService)
    • supportsParameter

      public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext context)
      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 context)
      Specified by:
      resolveParameter in interface org.junit.jupiter.api.extension.ParameterResolver
    • getProcessEngine

      protected abstract ProcessEngine getProcessEngine(org.junit.jupiter.api.extension.ExtensionContext context)
    • getStore

      protected abstract org.junit.jupiter.api.extension.ExtensionContext.Store getStore(org.junit.jupiter.api.extension.ExtensionContext context)