Class MojoExtension
java.lang.Object
org.codehaus.plexus.testing.PlexusExtension
org.apache.maven.plugin.testing.junit5.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 org.codehaus.plexus.testing.PlexusExtension
implements org.junit.jupiter.api.extension.ParameterResolver
JUnit extension to help testing Mojos. The extension should be automatically registered
by adding the
MojoTest
annotation on the test class.- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
beforeEach
(org.junit.jupiter.api.extension.ExtensionContext context) static org.codehaus.plexus.util.xml.Xpp3Dom
extractPluginConfiguration
(String artifactId, org.codehaus.plexus.util.xml.Xpp3Dom pomDom) protected String
getVariablesAndValuesFromObject
(Class<?> clazz, Object object) 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.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.static Object
getVariableValueFromObject
(Object object, String variable) Convenience method to obtain the value of a variable on a mojo that might not have a getter.protected org.apache.maven.plugin.Mojo
lookupMojo
(String[] coord, org.codehaus.plexus.util.xml.Xpp3Dom pluginConfiguration, org.apache.maven.plugin.descriptor.PluginDescriptor descriptor) lookup the mojo while we have all the relevent informationprotected String[]
mojoCoordinates
(String goal) resolveParameter
(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) static void
setVariableValueToObject
(Object object, String variable, Object value) Convenience method to set values to variables in objects that don't have settersboolean
supportsParameter
(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) Methods inherited from class org.codehaus.plexus.testing.PlexusExtension
afterEach, customizeComponentConfiguration, customizeContainerConfiguration, customizeContext, getBasedir, getClassLoader, getConfiguration, getConfiguration, getConfigurationName, getContainer, getCustomConfigurationName, getResourceAsStream, getTestConfiguration, getTestConfiguration, getTestFile, getTestFile, getTestPath, getTestPath, lookup, lookup, lookup, lookup, release, setupContainer
-
Constructor Details
-
MojoExtension
public MojoExtension()
-
-
Method Details
-
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 interfaceorg.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 interfaceorg.junit.jupiter.api.extension.ParameterResolver
- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-
beforeEach
- Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
- Overrides:
beforeEach
in classorg.codehaus.plexus.testing.PlexusExtension
- Throws:
Exception
-
getPluginDescriptorLocation
-
mojoCoordinates
- Throws:
Exception
-
lookupMojo
protected org.apache.maven.plugin.Mojo lookupMojo(String[] coord, org.codehaus.plexus.util.xml.Xpp3Dom pluginConfiguration, org.apache.maven.plugin.descriptor.PluginDescriptor descriptor) throws Exception lookup the mojo while we have all the relevent information- Throws:
Exception
-
extractPluginConfiguration
public static org.codehaus.plexus.util.xml.Xpp3Dom 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
-