Class MockitoComponentManagerExtension

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

    public class MockitoComponentManagerExtension
    extends Object
    implements org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.ParameterResolver
    JUnit5 extension to help write unit tests for XWiki Components.

    For example:

     
     @ComponentTest
     @ComponentList({
         Component3Impl.class
     })
     public class MyComponentTest
     {
         @Mock
         private List<String> list;
    
         &#64;MockComponent
         private Component1Role component1;
    
         &#64;InjectMocks
         &#64;InjectMockComponents
         private Component4Impl component4;
    
         &#64;InjectComponentManager
         private MockitoComponentManager componentManager;
    
         &#64;Inject
         private SomeComponentRole someComponent;
    
         &#64;BeforeEach
         public void before(MockitoComponentManager componentManager)
         {
             ...
         }
    
         &#64;Test
         public void test1(MockitoComponentManager componentManager)
         {
             ...
         }
    
         &#64;Test
         public void test2(ComponentManager componentManager)
         {
             ...
         }
     ...
     }
     
     
    Since:
    10.3RC1
    Version:
    $Id: 41872af63753554b42de5416be493a41e700e0db $
    • Constructor Detail

      • MockitoComponentManagerExtension

        public MockitoComponentManagerExtension()
    • Method Detail

      • beforeEach

        public void beforeEach​(org.junit.jupiter.api.extension.ExtensionContext context)
                        throws Exception
        Specified by:
        beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
        Throws:
        Exception
      • initializeMockitoComponentManager

        protected void initializeMockitoComponentManager​(Object testInstance,
                                                         MockitoComponentManager mcm,
                                                         org.junit.jupiter.api.extension.ExtensionContext context)
                                                  throws Exception
        To be overridden by extensions if they need to perform additional initializations.
        Parameters:
        testInstance - the test instance being initialized
        mcm - the already created (but not initialized) Mockito Component Manager
        context - the extension context
        Throws:
        Exception - if the initialization fails
      • afterEach

        public void afterEach​(org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                       throws Exception
        Specified by:
        afterEach in interface org.junit.jupiter.api.extension.AfterEachCallback
        Throws:
        Exception
      • 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
      • loadComponentManager

        public static MockitoComponentManager loadComponentManager​(org.junit.jupiter.api.extension.ExtensionContext context)
        Parameters:
        context - the test execution context, used to get the context store
        Returns:
        the MockitoComponentManager found in the context store
      • getStore

        public static org.junit.jupiter.api.extension.ExtensionContext.Store getStore​(org.junit.jupiter.api.extension.ExtensionContext context)
        Parameters:
        context - the test execution context, used to get the context store
        Returns:
        an extension context store for the currently running test