类 CamelQuarkusTestSupport

java.lang.Object
org.apache.camel.test.junit5.CamelTestSupport
org.apache.camel.quarkus.test.CamelQuarkusTestSupport
所有已实现的接口:
io.quarkus.test.junit.QuarkusTestProfile, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.AfterTestExecutionCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.BeforeTestExecutionCallback, org.junit.jupiter.api.extension.Extension

public class CamelQuarkusTestSupport extends org.apache.camel.test.junit5.CamelTestSupport implements io.quarkus.test.junit.QuarkusTestProfile
The CamelTestSupport class does not work on Quarkus. This class provides a replacement, which can be used in JVM mode. There are several differences between CamelTestSupport and this class.
  • Starting and stopping CamelContext in Camel Quarkus is generally bound to starting and stopping the application and this holds also when testing.
  • Starting and stopping the application under test (and thus also CamelContext is under full control of Quarkus JUnit Extension. It prefers keeping the application up and running unless it is told to do otherwise.
  • Hence normally the application under test is started only once for all test classes of the given Maven/Gradle module.
  • To force Quarkus JUnit Extension to restart the application (and thus also `CamelContext`) for a given test class, you need to assign a unique @io.quarkus.test.junit.TestProfile to that class. Check the Quarkus documentation for how you can do that. (Note that QuarkusTestResource has a similar effect.)
  • Camel Quarkus executes the production of beans during the build phase. Because all the tests are build together, exclusion behavior is implemented into CamelQuarkusTestSupport. If a producer of the specific type and name is used in one tests, the instance will be the same for the rest of the tests.
  • JUnit Jupiter callbacks BeforeEachCallback, AfterEachCallback, AfterAllCallback, BeforeAllCallback, BeforeTestExecutionCallback and AfterTestExecutionCallback) might not work correctly. See the documentation. Methods afterAll, afterEach, afterTestExecution, beforeAll and beforeEach are not executed anymore. You should use doAfterAll, doAfterConstruct, doAfterEach, doBeforeEach and doBeforeAll instead of them.
  • 嵌套类概要

    从接口继承的嵌套类/接口 io.quarkus.test.junit.QuarkusTestProfile

    io.quarkus.test.junit.QuarkusTestProfile.TestResourceEntry
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    protected org.apache.camel.CamelContext
     
    (专用程序包) Set<String>
     

    从类继承的字段 org.apache.camel.test.junit5.CamelTestSupport

    camelContextService, camelTestSupportExtension, consumer, extra, fluentTemplate, ROUTE_COVERAGE_ENABLED, template
  • 构造器概要

    构造器
    构造器
    说明
     
  • 方法概要

    修饰符和类型
    方法
    说明
    final void
    afterAll(org.junit.jupiter.api.extension.ExtensionContext context)
    This method does nothing.
    final void
    afterEach(org.junit.jupiter.api.extension.ExtensionContext context)
    This method does nothing.
    final void
    afterTestExecution(org.junit.jupiter.api.extension.ExtensionContext context)
    This method does nothing All necessary tasks are performed in BeforeEachCallback.beforeEach(QuarkusTestMethodContext) Use doAfterEach(QuarkusTestMethodContext) instead of this method.
    final void
    beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
    This method does nothing.
    final void
    beforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
    This method does nothing.
    protected void
    bindToRegistry(org.apache.camel.spi.Registry registry)
    The same functionality as CamelTestSupport.bindToRegistry(Registry).
    org.apache.camel.CamelContext
    The same functionality as CamelTestSupport.context() .
    protected org.apache.camel.CamelContext
    Feel free to override this method for the sake of customizing the instance returned by this implementation.
    protected final org.apache.camel.spi.Registry
    This method is not called on Camel Quarkus because the `CamelRegistry` is created and owned by Quarkus CDI container.
    protected void
    doAfterAll(io.quarkus.test.junit.callback.QuarkusTestContext context)
    protected void
    Replacement of beforeAll(ExtensionContext) called from AfterConstructCallback.afterConstruct(Object) Execution differs in case of @TestInstance(TestInstance.Lifecycle.PER_METHOD) in which case callback is called before each test (instead of beforeAll(ExtensionContext)).
    protected void
    doAfterEach(io.quarkus.test.junit.callback.QuarkusTestMethodContext context)
    protected void
    doBeforeEach(io.quarkus.test.junit.callback.QuarkusTestMethodContext context)
    protected void
    Strategy to perform any post setup after CamelContext is created
    protected void
    Strategy to perform any pre setup, before CamelContext is created
    protected final void
    Allows running of the CamelTestSupport child in the Quarkus application.
    protected final void
    doStopCamelContext(org.apache.camel.CamelContext context, org.apache.camel.Service camelContextService)
    Internal disablement of the context stop functionality.
    (专用程序包) void
    internalAfterAll(io.quarkus.test.junit.callback.QuarkusTestContext context, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
     
    (专用程序包) void
    internalBeforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
     
    (专用程序包) void
    internalBeforeEach(org.junit.jupiter.api.extension.ExtensionContext context)
     
    boolean
    Override when using advice with and return true.
    protected void
    The same functionality as CamelTestSupport.postProcessTest() .
    void
    Method CamelTestSupport.setUp() is triggered via annotation BeforeEach.
    protected final void
    This method does nothing.
    protected void
    Helper method to start routeDefinitions (to be used with `adviceWith`).
    protected void
    This method stops the Camel context.
    void
    Method CamelTestSupport.tearDown() is triggered via annotation AfterEach.

    从类继承的方法 org.apache.camel.test.junit5.CamelTestSupport

    applyCamelPostProcessor, assertExpression, assertPredicate, assertResolveLanguage, assertValidContext, beforeTestExecution, camelContextService, cleanupResources, consumer, createExchangeWithBody, createRouteBuilder, createRouteBuilders, debugAfter, debugBefore, disableJMX, doPostTearDown, doSetUp, doSpringBootCheck, enableJMX, fluentTemplate, getCamelContextService, getCurrentTestName, getMandatoryEndpoint, getMandatoryEndpoint, getMockEndpoint, getMockEndpoint, getRouteFilterExcludePattern, getRouteFilterIncludePattern, getShutdownTimeout, hasClassAnnotation, ignoreMissingLocationWithPropertiesComponent, isCreateCamelContextPerClass, isDumpRouteCoverage, isMockEndpoints, isMockEndpointsAndSkip, isUseDebugger, isUseRouteBuilder, replaceRouteFromWith, resolveMandatoryEndpoint, resolveMandatoryEndpoint, sendBodies, sendBody, sendBody, setCamelContextService, setupResources, setUseRouteBuilder, template, timeTaken, useJmx, useOverridePropertiesWithPropertiesComponent

    从类继承的方法 java.lang.Object

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

    从接口继承的方法 io.quarkus.test.junit.QuarkusTestProfile

    commandLineParameters, disableApplicationLifecycleObservers, disableGlobalTestResources, getConfigOverrides, getConfigProfile, getEnabledAlternatives, runMainMethod, tags, testResources
  • 字段详细资料

    • context

      @Inject protected org.apache.camel.CamelContext context
    • createdRoutes

      Set<String> createdRoutes
  • 构造器详细资料

    • CamelQuarkusTestSupport

      public CamelQuarkusTestSupport()
  • 方法详细资料

    • doAfterAll

      protected void doAfterAll(io.quarkus.test.junit.callback.QuarkusTestContext context) throws Exception
      抛出:
      Exception
    • doAfterEach

      protected void doAfterEach(io.quarkus.test.junit.callback.QuarkusTestMethodContext context) throws Exception
      抛出:
      Exception
    • doAfterConstruct

      protected void doAfterConstruct() throws Exception
      Replacement of beforeAll(ExtensionContext) called from AfterConstructCallback.afterConstruct(Object) Execution differs in case of @TestInstance(TestInstance.Lifecycle.PER_METHOD) in which case callback is called before each test (instead of beforeAll(ExtensionContext)).
      抛出:
      Exception
    • doBeforeEach

      protected void doBeforeEach(io.quarkus.test.junit.callback.QuarkusTestMethodContext context) throws Exception
      抛出:
      Exception
    • createCamelContext

      protected org.apache.camel.CamelContext createCamelContext() throws Exception
      Feel free to override this method for the sake of customizing the instance returned by this implementation. Do not create your own CamelContext instance, because there needs to exist just a single instance owned by Quarkus CDI container. There are checks in place that will make your tests fail if you do otherwise.
      覆盖:
      createCamelContext 在类中 org.apache.camel.test.junit5.CamelTestSupport
      返回:
      The context from Quarkus CDI container
      抛出:
      Exception - Overridden method has to throw the same Exception as superclass.
    • bindToRegistry

      protected void bindToRegistry(org.apache.camel.spi.Registry registry) throws Exception
      The same functionality as CamelTestSupport.bindToRegistry(Registry).
      覆盖:
      bindToRegistry 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • postProcessTest

      protected void postProcessTest() throws Exception
      The same functionality as CamelTestSupport.postProcessTest() .
      覆盖:
      postProcessTest 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • context

      public org.apache.camel.CamelContext context()
      The same functionality as CamelTestSupport.context() .
      覆盖:
      context 在类中 org.apache.camel.test.junit5.CamelTestSupport
    • createCamelRegistry

      protected final org.apache.camel.spi.Registry createCamelRegistry()
      This method is not called on Camel Quarkus because the `CamelRegistry` is created and owned by Quarkus CDI container. If you need to customize the registry upon creation, you may want to override createCamelContext() in the following way:
       @Override
       protected CamelContext createCamelContext() throws Exception {
           CamelContext ctx = super.createCamelContext();
           Registry registry = ctx.getRegistry();
           // do something with the registry...
           return ctx;
       }
       
      覆盖:
      createCamelRegistry 在类中 org.apache.camel.test.junit5.CamelTestSupport
      返回:
      Never returns any result. UnsupportedOperationException is thrown instead.
    • beforeAll

      public final void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
      This method does nothing. All necessary tasks are performed in BeforeEachCallback.beforeEach(QuarkusTestMethodContext) Use doAfterConstruct() instead of this method.
      指定者:
      beforeAll 在接口中 org.junit.jupiter.api.extension.BeforeAllCallback
      覆盖:
      beforeAll 在类中 org.apache.camel.test.junit5.CamelTestSupport
    • beforeEach

      public final void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      This method does nothing. All tasks are performed in BeforeEachCallback.beforeEach(QuarkusTestMethodContext) Use doBeforeEach(QuarkusTestMethodContext) instead of this method.
      指定者:
      beforeEach 在接口中 org.junit.jupiter.api.extension.BeforeEachCallback
      覆盖:
      beforeEach 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • afterAll

      public final void afterAll(org.junit.jupiter.api.extension.ExtensionContext context)
      This method does nothing. All necessary tasks are performed in BeforeEachCallback.beforeEach(QuarkusTestMethodContext) Use doAfterAll(QuarkusTestContext) instead of this method.
      指定者:
      afterAll 在接口中 org.junit.jupiter.api.extension.AfterAllCallback
      覆盖:
      afterAll 在类中 org.apache.camel.test.junit5.CamelTestSupport
    • afterEach

      public final void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      This method does nothing. All necessary tasks are performed in BeforeEachCallback.beforeEach(QuarkusTestMethodContext) Use doAfterEach(QuarkusTestMethodContext) instead of this method.
      指定者:
      afterEach 在接口中 org.junit.jupiter.api.extension.AfterEachCallback
      覆盖:
      afterEach 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • afterTestExecution

      public final void afterTestExecution(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      This method does nothing All necessary tasks are performed in BeforeEachCallback.beforeEach(QuarkusTestMethodContext) Use doAfterEach(QuarkusTestMethodContext) instead of this method.
      指定者:
      afterTestExecution 在接口中 org.junit.jupiter.api.extension.AfterTestExecutionCallback
      覆盖:
      afterTestExecution 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • setUp

      public void setUp() throws Exception
      Method CamelTestSupport.setUp() is triggered via annotation BeforeEach. Its execution is disabled (by using overriding method without any annotation) and is executed from BeforeEachCallback
      覆盖:
      setUp 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • tearDown

      public void tearDown() throws Exception
      Method CamelTestSupport.tearDown() is triggered via annotation AfterEach. Its execution is disabled (by using overriding method without any annotation) and is executed from AfterEachCallback
      覆盖:
      tearDown 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • stopCamelContext

      protected void stopCamelContext() throws Exception
      This method stops the Camel context. Be aware that on of the limitation that Quarkus brings is that context can not be started (lifecycle f the context is bound to the application) .
      覆盖:
      stopCamelContext 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • doQuarkusCheck

      protected final void doQuarkusCheck()
      Allows running of the CamelTestSupport child in the Quarkus application. Method is not intended to be overridden.
      覆盖:
      doQuarkusCheck 在类中 org.apache.camel.test.junit5.CamelTestSupport
    • internalAfterAll

      void internalAfterAll(io.quarkus.test.junit.callback.QuarkusTestContext context, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
    • internalBeforeAll

      void internalBeforeAll(org.junit.jupiter.api.extension.ExtensionContext context)
    • internalBeforeEach

      void internalBeforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      抛出:
      Exception
    • doPreSetup

      protected void doPreSetup() throws Exception
      Strategy to perform any pre setup, before CamelContext is created

      Be aware that difference in lifecycle with Quarkus may require a special behavior. If this method is overridden, super.doPreSetup() has to be called.

      覆盖:
      doPreSetup 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • doPostSetup

      protected void doPostSetup() throws Exception
      Strategy to perform any post setup after CamelContext is created

      Be aware that difference in lifecycle with Quarkus may require a special behavior. If this method is overridden, super.doPostSetup() has to be called.

      覆盖:
      doPostSetup 在类中 org.apache.camel.test.junit5.CamelTestSupport
      抛出:
      Exception
    • doStopCamelContext

      protected final void doStopCamelContext(org.apache.camel.CamelContext context, org.apache.camel.Service camelContextService)
      Internal disablement of the context stop functionality.
      覆盖:
      doStopCamelContext 在类中 org.apache.camel.test.junit5.CamelTestSupport
    • startCamelContext

      protected final void startCamelContext()
      This method does nothing. The context starts together with Quarkus engine.
      覆盖:
      startCamelContext 在类中 org.apache.camel.test.junit5.CamelTestSupport
    • isUseAdviceWith

      public boolean isUseAdviceWith()
      Override when using advice with and return true. This helps knowing advice with is to be used.

      Important: Its important to execute method startRouteDefinitions()} manually from the unit test after you are done doing all the advice with.

      覆盖:
      isUseAdviceWith 在类中 org.apache.camel.test.junit5.CamelTestSupport
      返回:
      true if you use advice with in your unit tests.
    • startRouteDefinitions

      protected void startRouteDefinitions() throws Exception
      Helper method to start routeDefinitions (to be used with `adviceWith`).
      抛出:
      Exception