Class 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:
    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 Detail

      • logger

        protected final org.slf4j.Logger logger
    • Constructor Detail

      • InternalFlowableExtension

        public InternalFlowableExtension()
    • Method Detail

      • 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)