Class CamelCdiExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.TestInstanceFactory

    public final class CamelCdiExtension
    extends Object
    implements org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.TestInstanceFactory, org.junit.jupiter.api.extension.ParameterResolver
    The JUnit 5 extension of Camel CDI, this extension allows to inject any existing beans in the test class but also the Camel specific beans directly as parameter of the test methods. The non Camel specific beans cannot be injected as parameter to avoid conflicts with the parameters of JUnit 5 or other extensions.
     
       @ExtendWith(CamelCdiExtension.class)
       public class CamelTest {
        ...
       }
     
     

    Additional alternatives, bean types or packages to scan that are specific to the test class can be provided thanks to the annotation Beans.

     
       @ExtendWith(CamelCdiExtension.class)
       @Beans(alternatives = AlternativeBean.class, classes = TestRoute.class)
       public class CamelTest {
         ...
       }
     
     

    The extension is also able to automatically detect beans of type AdviceWithRouteBuilder annotated with AdviceRoute, instantiate them and advice the referred routes while taking care of delaying the start-up of the Camel context to ensure that it works as expected.

     
    
     @AdviceRoute("route")
     public class ExternalTestBuilder extends AdviceWithRouteBuilder {
    
         @Override
         public void configure() throws Exception {
             weaveByToUri("direct:out").replace().to("mock:test");
         }
     }
     
     
    See Also:
    AdviceRoute, Beans
    • Constructor Detail

      • CamelCdiExtension

        public CamelCdiExtension()
    • Method Detail

      • createTestInstance

        public Object createTestInstance​(org.junit.jupiter.api.extension.TestInstanceFactoryContext factoryContext,
                                         org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        createTestInstance in interface org.junit.jupiter.api.extension.TestInstanceFactory
      • supportsParameter

        public boolean supportsParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext,
                                         org.junit.jupiter.api.extension.ExtensionContext extensionContext)
        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