Class MojoRule

java.lang.Object
org.apache.maven.plugin.testing.MojoRule
All Implemented Interfaces:
org.junit.rules.TestRule

public class MojoRule extends Object implements org.junit.rules.TestRule
TestRule for usage with Junit-4.10ff. This is just a wrapper for an embedded AbstractMojoTestCase, so all protected methods of the TestCase are exhibited as public in the rule. You may annotate single tests methods with WithoutMojo to prevent the rule from firing.
Since:
2.2
Author:
Mirko Friedenhagen
  • Constructor Details

  • Method Details

    • before

      protected void before() throws Throwable
      May be overridden in the implementation to do stuff after the embedded test case is set up but before the current test is actually run.
      Throws:
      Throwable
    • after

      protected void after()
      May be overridden in the implementation to do stuff after the current test was run.
    • getPublicDescriptorStream

      public InputStream getPublicDescriptorStream() throws Exception
      Throws:
      Exception
    • getPluginDescriptorPath

      public String getPluginDescriptorPath()
    • getPluginDescriptorLocation

      public String getPluginDescriptorLocation()
    • setupContainer

      public void setupContainer()
    • setupContainerConfiguration

      public org.codehaus.plexus.ContainerConfiguration setupContainerConfiguration()
    • getContainer

      public org.codehaus.plexus.PlexusContainer getContainer()
    • lookupMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupMojo(String goal, String pluginPom) throws Exception
      Lookup the mojo leveraging the subproject pom
      Parameters:
      goal -
      pluginPom -
      Returns:
      a Mojo instance
      Throws:
      Exception
    • lookupEmptyMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupEmptyMojo(String goal, String pluginPom) throws Exception
      Lookup an empty mojo
      Parameters:
      goal -
      pluginPom -
      Returns:
      a Mojo instance
      Throws:
      Exception
    • lookupMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupMojo(String goal, File pom) throws Exception
      Lookup the mojo leveraging the actual subprojects pom
      Parameters:
      goal -
      pom -
      Returns:
      a Mojo instance
      Throws:
      Exception
    • lookupEmptyMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupEmptyMojo(String goal, File pom) throws Exception
      Lookup the mojo leveraging the actual subprojects pom
      Parameters:
      goal -
      pom -
      Returns:
      a Mojo instance
      Throws:
      Exception
    • lookupMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupMojo(String groupId, String artifactId, String version, String goal, org.codehaus.plexus.configuration.PlexusConfiguration pluginConfiguration) throws Exception
      Throws:
      Exception
    • lookupConfiguredMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupConfiguredMojo(org.apache.maven.project.MavenProject project, String goal) throws Exception
      Throws:
      Exception
    • lookupConfiguredMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupConfiguredMojo(org.apache.maven.execution.MavenSession session, org.apache.maven.plugin.MojoExecution execution) throws Exception, org.codehaus.plexus.component.configurator.ComponentConfigurationException
      Throws:
      Exception
      org.codehaus.plexus.component.configurator.ComponentConfigurationException
    • newMavenSession

      public org.apache.maven.execution.MavenSession newMavenSession(org.apache.maven.project.MavenProject project)
    • newMojoExecution

      public org.apache.maven.plugin.MojoExecution newMojoExecution(String goal)
    • extractPluginConfiguration

      public org.codehaus.plexus.configuration.PlexusConfiguration extractPluginConfiguration(String artifactId, File pom) throws Exception
      Throws:
      Exception
    • extractPluginConfiguration

      public org.codehaus.plexus.configuration.PlexusConfiguration extractPluginConfiguration(String artifactId, org.codehaus.plexus.util.xml.Xpp3Dom pomDom) throws Exception
      Throws:
      Exception
    • configureMojo

      public <T extends org.apache.maven.plugin.Mojo> T configureMojo(T mojo, String artifactId, File pom) throws Exception
      Throws:
      Exception
    • configureMojo

      public <T extends org.apache.maven.plugin.Mojo> T configureMojo(T mojo, org.codehaus.plexus.configuration.PlexusConfiguration pluginConfiguration) throws Exception
      Throws:
      Exception
    • getVariableValueFromObject

      public <T> T 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 to what the desired type is.
      Parameters:
      object -
      variable -
      Returns:
      object value of variable
      Throws:
      IllegalArgumentException
      IllegalAccessException
    • getVariablesAndValuesFromObject

      public 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.
      Parameters:
      object -
      Returns:
      map of variable names and values
      Throws:
      IllegalAccessException
    • getVariablesAndValuesFromObject

      public 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.
      Parameters:
      clazz -
      object -
      Returns:
      map of variable names and values
      Throws:
      IllegalAccessException
    • setVariableValueToObject

      public <T> void setVariableValueToObject(Object object, String variable, T value) throws IllegalAccessException
      Convenience method to set values to variables in objects that don't have setters
      Parameters:
      object -
      variable -
      value -
      Throws:
      IllegalAccessException
    • apply

      public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description)
      Specified by:
      apply in interface org.junit.rules.TestRule
    • readMavenProject

      public org.apache.maven.project.MavenProject readMavenProject(File basedir) throws Exception
      Throws:
      Exception
      Since:
      3.1.0
    • executeMojo

      public void executeMojo(File basedir, String goal) throws Exception
      Throws:
      Exception
      Since:
      3.1.0
    • lookupConfiguredMojo

      public <T extends org.apache.maven.plugin.Mojo> T lookupConfiguredMojo(File basedir, String goal) throws Exception, org.codehaus.plexus.component.configurator.ComponentConfigurationException
      Throws:
      Exception
      org.codehaus.plexus.component.configurator.ComponentConfigurationException
      Since:
      3.1.0
    • lookup

      public final <T> T lookup(Class<T> role) throws org.codehaus.plexus.component.repository.exception.ComponentLookupException
      Throws:
      org.codehaus.plexus.component.repository.exception.ComponentLookupException
      Since:
      3.1.0
    • executeMojo

      public void executeMojo(org.apache.maven.project.MavenProject project, String goal, org.codehaus.plexus.util.xml.Xpp3Dom... parameters) throws Exception
      Throws:
      Exception
      Since:
      3.2.0
    • executeMojo

      public void executeMojo(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, String goal, org.codehaus.plexus.util.xml.Xpp3Dom... parameters) throws Exception
      Throws:
      Exception
      Since:
      3.2.0
    • executeMojo

      public void executeMojo(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, org.apache.maven.plugin.MojoExecution execution) throws Exception
      Throws:
      Exception
      Since:
      3.2.0