Class MojoExtension

java.lang.Object
org.apache.maven.api.di.testing.MavenDIExtension
org.apache.maven.api.plugin.testing.MojoExtension
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 MojoExtension extends MavenDIExtension implements org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.BeforeEachCallback
JUnit extension to help testing Mojos. The extension should be automatically registered by adding the MojoTest annotation on the test class.
See Also:
  • Field Details

    • pluginBasedir

      protected static String pluginBasedir
    • basedir

      protected static String basedir
  • Constructor Details

    • MojoExtension

      public MojoExtension()
  • Method Details

    • getTestId

      public static String getTestId()
    • getBasedir

      public static String getBasedir()
    • getPluginBasedir

      public static String getPluginBasedir()
    • 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
    • beforeEach

      public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) throws Exception
      Specified by:
      beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
      Overrides:
      beforeEach in class MavenDIExtension
      Throws:
      Exception
    • getPluginDescriptorLocation

      protected String getPluginDescriptorLocation()
    • mojoCoordinates

      protected String[] mojoCoordinates(String goal) throws Exception
      Throws:
      Exception
    • extractPluginConfiguration

      public static org.apache.maven.api.xml.XmlNode extractPluginConfiguration(String artifactId, org.codehaus.plexus.util.xml.Xpp3Dom pomDom) throws Exception
      Throws:
      Exception
    • getVariableValueFromObject

      public static Object getVariableValueFromObject(Object object, String variable) throws IllegalAccessException
      Convenience method to obtain the value of a variable on a mojo that might not have a getter.
      NOTE: the caller is responsible for casting to what the desired type is.
      Throws:
      IllegalAccessException
    • getVariablesAndValuesFromObject

      public static Map<String,Object> getVariablesAndValuesFromObject(Object object) throws IllegalAccessException
      Convenience method to obtain all variables and values from the mojo (including its superclasses)
      Note: the values in the map are of type Object so the caller is responsible for casting to desired types.
      Throws:
      IllegalAccessException
    • getVariablesAndValuesFromObject

      public static Map<String,Object> getVariablesAndValuesFromObject(Class<?> clazz, Object object) throws IllegalAccessException
      Convenience method to obtain all variables and values from the mojo (including its superclasses)
      Note: the values in the map are of type Object so the caller is responsible for casting to desired types.
      Returns:
      map of variable names and values
      Throws:
      IllegalAccessException
    • setVariableValueToObject

      public static void setVariableValueToObject(Object object, String variable, Object value) throws IllegalAccessException
      Convenience method to set values to variables in objects that don't have setters
      Throws:
      IllegalAccessException