Class AstrixExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver

    public class AstrixExtension
    extends Object
    implements org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.AfterAllCallback
    Test utility that manages an internal service registry, config-source and AstrixContext. The managed AstrixContext is configured to use the internal service registry.

    The AstrixTestContext allows registering providers programmatically in the service-registry, see AstrixTestContext.setProxyState(Class, Object).

    Typical usage:

    
     @RegisterExtension
     static AstrixExtension astrix = AstrixExtension.create();
    
     @RegisterExtension
     static RunningPu testedPu = ... // setup pu
    
    
     @Test
     void aTest(AstrixTestContext astrixTestContext) {
         ...
         astrixTestContext.setProxyState(ConsumedService.class, serviceStub);
         ...
         ServiceUnderTest service = astrixTestContext.waitForBean(ServiceUnderTest.class, 2000);
     }
    
     @Test
     void anotherTest(AstrixTestContext astrixTestContext) {
         ...
         astrixTestContext.setProxyState(ConsumedService.class, serviceStubWithDifferentBehavior);
         ...
         ServiceUnderTest service = astrixTestContext.waitForBean(ServiceUnderTest.class, 2000);
     }
    
     
    • Method Detail

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

        public void beforeAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
      • afterEach

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

        public void afterAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback
      • getAstrixTestContext

        public com.avanza.astrix.test.AstrixTestContext getAstrixTestContext​(org.junit.jupiter.api.extension.ExtensionContext context)