You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by gn...@apache.org on 2022/03/08 10:48:29 UTC

[maven-resources-plugin] branch mvn4 updated: runtime support

This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch mvn4
in repository https://gitbox.apache.org/repos/asf/maven-resources-plugin.git


The following commit(s) were added to refs/heads/mvn4 by this push:
     new d71ef1c  runtime support
d71ef1c is described below

commit d71ef1c9f92646d4ba7d7560dd568648d6433620
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Mar 8 11:48:27 2022 +0100

    runtime support
---
 pom.xml                                            |   6 +-
 .../maven/plugins/resources/TestResourcesMojo.java |   9 +-
 .../resources/AbstractPropertyUtilsTest.java       |   8 +-
 .../plugins/resources/BasicPropertyUtilsTest.java  |  18 +-
 .../plugins/resources/CopyResourcesMojoTest.java   |  26 +--
 .../resources/PropertyUtilsExceptionTest.java      |  11 +-
 .../maven/plugins/resources/ResourcesMojoTest.java | 192 ++++++++-------------
 .../maven/plugins/resources/TestResourcesTest.java |  36 ++--
 .../resources/stub/MavenProjectBasicStub.java      |  60 ++++++-
 .../resources/stub/MavenProjectBuildStub.java      |   1 +
 .../resources/stub/MavenProjectResourcesStub.java  |   7 +-
 11 files changed, 194 insertions(+), 180 deletions(-)

diff --git a/pom.xml b/pom.xml
index 48d0212..38d3e2c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -100,7 +100,6 @@ under the License.
     <dependency>
       <groupId>org.eclipse.sisu</groupId>
       <artifactId>org.eclipse.sisu.plexus</artifactId>
-      <version>0.0.0.M2a</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
@@ -151,6 +150,11 @@ under the License.
       <version>1.1.0</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.eclipse.sisu</groupId>
+      <artifactId>org.eclipse.sisu.inject</artifactId>
+      <scope>test</scope>
+    </dependency>
 
   </dependencies>
 
diff --git a/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java b/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
index 72df179..99e4d95 100644
--- a/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
@@ -20,10 +20,10 @@ package org.apache.maven.plugins.resources;
  */
 
 import org.apache.maven.api.plugin.MojoException;
+import org.apache.maven.api.plugin.annotations.LifecyclePhase;
+import org.apache.maven.api.plugin.annotations.Mojo;
+import org.apache.maven.api.plugin.annotations.Parameter;
 import org.apache.maven.model.Resource;
-import org.apache.maven.plugins.annotations.LifecyclePhase;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
 
 import java.io.File;
 import java.util.List;
@@ -35,8 +35,7 @@ import java.util.List;
  * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  */
-@Mojo( name = "testResources", defaultPhase = LifecyclePhase.PROCESS_TEST_RESOURCES, requiresProject = true,
-       threadSafe = true )
+@Mojo( name = "testResources", defaultPhase = LifecyclePhase.PROCESS_TEST_RESOURCES, requiresProject = true )
 public class TestResourcesMojo
     extends ResourcesMojo
 {
diff --git a/src/test/java/org/apache/maven/plugins/resources/AbstractPropertyUtilsTest.java b/src/test/java/org/apache/maven/plugins/resources/AbstractPropertyUtilsTest.java
index 366aa39..833899d 100644
--- a/src/test/java/org/apache/maven/plugins/resources/AbstractPropertyUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/AbstractPropertyUtilsTest.java
@@ -26,14 +26,15 @@ import java.io.InputStream;
 import java.util.Enumeration;
 import java.util.Properties;
 
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.codehaus.plexus.util.IOUtil;
+import org.junit.jupiter.api.BeforeEach;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * Base class for propertyutils test case
  */
 public abstract class AbstractPropertyUtilsTest
-    extends AbstractMojoTestCase
 {
     protected File propertyFile;
 
@@ -45,11 +46,10 @@ public abstract class AbstractPropertyUtilsTest
 
     protected abstract File getValidationFile();
 
+    @BeforeEach
     protected void setUp()
         throws Exception
     {
-        super.setUp();
-
         // load data
         propertyFile = getPropertyFile();
         assertNotNull( propertyFile );
diff --git a/src/test/java/org/apache/maven/plugins/resources/BasicPropertyUtilsTest.java b/src/test/java/org/apache/maven/plugins/resources/BasicPropertyUtilsTest.java
index 35473b9..a641cce 100644
--- a/src/test/java/org/apache/maven/plugins/resources/BasicPropertyUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/BasicPropertyUtilsTest.java
@@ -23,6 +23,12 @@ import java.io.File;
 import java.util.Properties;
 
 import org.apache.maven.shared.filtering.PropertyUtils;
+import org.junit.jupiter.api.Test;
+
+import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class BasicPropertyUtilsTest
     extends AbstractPropertyUtilsTest
@@ -58,9 +64,8 @@ public class BasicPropertyUtilsTest
 
     /**
      * load property test case can be adjusted by modifying the basic.properties and basic_validation properties
-     *
-     * @throws Exception
      */
+    @Test
     public void testBasicLoadProperty_FF()
         throws Exception
     {
@@ -72,9 +77,8 @@ public class BasicPropertyUtilsTest
 
     /**
      * load property test case can be adjusted by modifying the basic.properties and basic_validation properties
-     *
-     * @throws Exception
      */
+    @Test
     public void testBasicLoadProperty_TF()
         throws Exception
     {
@@ -86,9 +90,8 @@ public class BasicPropertyUtilsTest
 
     /**
      * load property test case can be adjusted by modifying the basic.properties and basic_validation properties
-     *
-     * @throws Exception
      */
+    @Test
     public void testBasicLoadProperty_TT()
         throws Exception
     {
@@ -101,9 +104,8 @@ public class BasicPropertyUtilsTest
 
     /**
      * load property test case can be adjusted by modifying the basic.properties and basic_validation properties
-     *
-     * @throws Exception
      */
+    @Test
     public void testNonExistentProperty()
         throws Exception
     {
diff --git a/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java b/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java
index 5d12f90..39f48c3 100644
--- a/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java
@@ -1,13 +1,20 @@
 package org.apache.maven.plugins.resources;
 
 import java.io.File;
+import java.nio.file.Files;
 import java.util.Collections;
 
 import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugins.resources.ResourcesMojo;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.plugins.resources.stub.MavenProjectResourcesStub;
 import org.codehaus.plexus.util.FileUtils;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.apache.maven.api.plugin.testing.MojoExtension.setVariableValueToObject;
+import static org.codehaus.plexus.testing.PlexusExtension.getBasedir;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -32,21 +39,21 @@ import org.codehaus.plexus.util.FileUtils;
  * @author Olivier Lamy
  * @version $Id$
  */
+@MojoTest
 public class CopyResourcesMojoTest
-    extends AbstractMojoTestCase
 {
 
-    protected final static String defaultPomFilePath = "/target/test-classes/unit/resources-test/plugin-config.xml";
+    public static final String PLUGIN_CONFIG_XML = "classpath:/unit/resources-test/plugin-config.xml";
 
     File outputDirectory = new File( getBasedir(), "/target/copyResourcesTests" );
 
+    @BeforeEach
     protected void setUp()
         throws Exception
     {
-        super.setUp();
         if ( !outputDirectory.exists() )
         {
-            outputDirectory.mkdirs();
+            Files.createDirectories( outputDirectory.toPath() );
         }
         else
         {
@@ -54,12 +61,11 @@ public class CopyResourcesMojoTest
         }
     }
 
-    public void testCopyWithoutFiltering()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testCopyWithoutFiltering( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
-
         mojo.setOutputDirectory( outputDirectory );
 
         Resource resource = new Resource();
diff --git a/src/test/java/org/apache/maven/plugins/resources/PropertyUtilsExceptionTest.java b/src/test/java/org/apache/maven/plugins/resources/PropertyUtilsExceptionTest.java
index a0c00a9..32346cc 100644
--- a/src/test/java/org/apache/maven/plugins/resources/PropertyUtilsExceptionTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/PropertyUtilsExceptionTest.java
@@ -23,20 +23,21 @@ import java.io.File;
 import java.io.FileNotFoundException;
 
 import org.apache.maven.shared.filtering.PropertyUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 public class PropertyUtilsExceptionTest
 {
 
     /**
      * load property test case can be adjusted by modifying the basic.properties and basic_validation properties
-     *
-     * @throws Exception
      */
-    @Test( expected = FileNotFoundException.class )
+    @Test
     public void loadPropertyFileShouldFailWithFileNotFoundException()
         throws Exception
     {
-        PropertyUtils.loadPropertyFile( new File( "NON_EXISTENT_FILE" ), true, true );
+        assertThrows( FileNotFoundException.class, () ->
+            PropertyUtils.loadPropertyFile( new File( "NON_EXISTENT_FILE" ), true, true ) );
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java b/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java
index 31ad57c..b7f9479 100644
--- a/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java
@@ -29,43 +29,47 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.maven.api.Session;
 import org.apache.maven.execution.DefaultMavenExecutionRequest;
 import org.apache.maven.execution.MavenExecutionRequest;
-import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoTest;
+import org.apache.maven.api.plugin.testing.stubs.SessionStub;
 import org.apache.maven.plugins.resources.stub.MavenProjectResourcesStub;
-import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.util.FileUtils;
-import org.eclipse.aether.RepositorySystemSession;
+import org.junit.jupiter.api.Test;
 
+import static org.apache.maven.api.plugin.testing.MojoExtension.setVariableValueToObject;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@MojoTest
 public class ResourcesMojoTest
-    extends AbstractMojoTestCase
 {
-    protected final static String defaultPomFilePath = "/target/test-classes/unit/resources-test/plugin-config.xml";
+
+    public static final String PLUGIN_CONFIG_XML = "classpath:/unit/resources-test/plugin-config.xml";
 
     /**
      * test mojo lookup, test harness should be working fine
      *
      * @throws Exception
      */
-    public void testHarnessEnvironment()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testHarnessEnvironment( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
-
         assertNotNull( mojo );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceDirectoryStructure()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceDirectoryStructure( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourceDirectoryStructure" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
@@ -96,14 +100,11 @@ public class ResourcesMojoTest
         assertTrue( FileUtils.fileExists( resourcesDir + "/notpackage/test" ) );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceDirectoryStructure_RelativePath()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceDirectoryStructure_RelativePath( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourceDirectoryStructure_RelativePath" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
@@ -135,17 +136,13 @@ public class ResourcesMojoTest
         assertTrue( FileUtils.fileExists( resourcesDir + "/notpackage/test" ) );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceEncoding()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceEncoding( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "encoding" );
-        List<Resource> resources = project.getBuild()
-                                .getResources();
+        List<Resource> resources = project.getBuild().getResources();
 
         assertNotNull( mojo );
 
@@ -167,14 +164,11 @@ public class ResourcesMojoTest
         assertTrue( FileUtils.fileExists( resourcesDir + "/file4.txt" ) );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceInclude()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceInclude( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourceInclude" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
@@ -221,14 +215,11 @@ public class ResourcesMojoTest
         assertFalse( FileUtils.fileExists( resourcesDir + "/notpackage/nottest/file.txt" ) );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceExclude()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceExclude( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourceExclude" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
@@ -276,14 +267,11 @@ public class ResourcesMojoTest
         assertFalse( FileUtils.fileExists( resourcesDir + "/notpackage/nottest/file.txt" ) );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceTargetPath()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceTargetPath( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourceTargetPath" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
@@ -316,14 +304,11 @@ public class ResourcesMojoTest
         assertTrue( FileUtils.fileExists( resourcesDir + "/org/apache/maven/plugin/test/notpackage/test" ) );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceSystemProperties_Filtering()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceSystemProperties_Filtering( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourceSystemProperties_Filtering" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
@@ -346,8 +331,7 @@ public class ResourcesMojoTest
         MavenExecutionRequest request = new DefaultMavenExecutionRequest();
         request.setSystemProperties( System.getProperties() );
 
-        MavenSession mavenSession =
-            new MavenSession( (PlexusContainer) null, (RepositorySystemSession) null, request, null );
+        Session mavenSession = new SessionStub();
         setVariableValueToObject( mojo, "session", mavenSession );
         mojo.execute();
 
@@ -357,29 +341,21 @@ public class ResourcesMojoTest
         assertTrue( userDir.exists() );
 
         Properties props = new Properties();
-        final FileInputStream inStream = new FileInputStream( new File( resourcesDir, "file4.txt" ) );
-        try
+        try ( FileInputStream inStream = new FileInputStream( new File( resourcesDir, "file4.txt" ) ) )
         {
             props.load( inStream );
         }
-        finally
-        {
-            inStream.close();
-        }
         File fileFromFiltering = new File( props.getProperty( "current-working-directory" ) );
 
-        assertTrue( fileFromFiltering.getAbsolutePath() + " does not exist.", fileFromFiltering.exists() );
+        assertTrue( fileFromFiltering.exists(), fileFromFiltering.getAbsolutePath() + " does not exist." );
         assertEquals( userDir.getAbsolutePath(), fileFromFiltering.getAbsolutePath() );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testResourceProjectProperties_Filtering()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testResourceProjectProperties_Filtering( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourceProjectProperties_Filtering" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
@@ -406,14 +382,11 @@ public class ResourcesMojoTest
         assertContent( resourcesDir + "/file4.txt", checkString );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testProjectProperty_Filtering_PropertyDestination()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testProjectProperty_Filtering_PropertyDestination( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project =
             new MavenProjectResourcesStub( "resourcePojectProperty_Filtering_PropertyDestination" );
         List<Resource> resources = project.getBuild()
@@ -444,18 +417,15 @@ public class ResourcesMojoTest
         assertContent( resourcesDir + "/file4.properties", checkString );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testPropertyFiles_Filtering()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testPropertyFiles_Filtering( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourcePropertyFiles_Filtering" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
-        LinkedList<String> filterList = new LinkedList<String>();
+        LinkedList<String> filterList = new LinkedList<>();
 
         assertNotNull( mojo );
 
@@ -480,18 +450,15 @@ public class ResourcesMojoTest
         assertContent( resourcesDir + "/file4.properties", checkString );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testPropertyFiles_Extra()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testPropertyFiles_Extra( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourcePropertyFiles_Extra" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
-        LinkedList<String> filterList = new LinkedList<String>();
+        LinkedList<String> filterList = new LinkedList<>();
 
         assertNotNull( mojo );
 
@@ -516,19 +483,16 @@ public class ResourcesMojoTest
         assertContent( resourcesDir + "/extra.properties", checkString );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testPropertyFiles_MainAndExtra()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testPropertyFiles_MainAndExtra( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "resourcePropertyFiles_MainAndExtra" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
-        LinkedList<String> filterList = new LinkedList<String>();
-        LinkedList<String> extraFilterList = new LinkedList<String>();
+        LinkedList<String> filterList = new LinkedList<>();
+        LinkedList<String> extraFilterList = new LinkedList<>();
 
         assertNotNull( mojo );
 
@@ -563,19 +527,17 @@ public class ResourcesMojoTest
     /**
      * Validates that a Filter token containing a project property will be resolved before the Filter is applied to the
      * resources.
-     *
-     * @throws Exception
      */
-    public void testPropertyFiles_Filtering_TokensInFilters()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testPropertyFiles_Filtering_TokensInFilters( ResourcesMojo mojo )
         throws Exception
     {
-        final File testPom = new File( getBasedir(), defaultPomFilePath );
-        final ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         final MavenProjectResourcesStub project =
             new MavenProjectResourcesStub( "resourcePropertyFiles_Filtering_TokensInFilters" );
         final List<Resource> resources = project.getBuild()
                                       .getResources();
-        final LinkedList<String> filterList = new LinkedList<String>();
+        final LinkedList<String> filterList = new LinkedList<>();
 
         assertNotNull( mojo );
 
@@ -601,21 +563,19 @@ public class ResourcesMojoTest
         assertContent( resourcesDir + "/file4.properties", checkString );
     }
 
-    public void testWindowsPathEscapingDisabled()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testWindowsPathEscapingDisabled( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "windows-paths" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
 
         assertNotNull( mojo );
 
-        project.getProperties()
-               .setProperty( "basePath", "C:\\Users\\Administrator" );
-        project.getProperties()
-               .setProperty( "docsPath", "${basePath}\\Documents" );
+        project.addProperty( "basePath", "C:\\Users\\Administrator" );
+        project.addProperty( "docsPath", "${basePath}\\Documents" );
 
         project.addFile( "path-listing.txt", "base path is ${basePath}\ndocuments path is ${docsPath}" );
         project.setResourceFiltering( 0, true );
@@ -641,21 +601,19 @@ public class ResourcesMojoTest
                       FileUtils.fileRead( new File( resourcesDir, "path-listing.txt" ) ) );
     }
 
-    public void testWindowsPathEscapingEnabled()
+    @Test
+    @InjectMojo( goal = "resources", pom = PLUGIN_CONFIG_XML )
+    public void testWindowsPathEscapingEnabled( ResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "resources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "windows-paths" );
         List<Resource> resources = project.getBuild()
                                 .getResources();
 
         assertNotNull( mojo );
 
-        project.getProperties()
-               .setProperty( "basePath", "C:\\Users\\Administrator" );
-        project.getProperties()
-               .setProperty( "docsPath", "${basePath}\\Documents" );
+        project.addProperty( "basePath", "C:\\Users\\Administrator" );
+        project.addProperty( "docsPath", "${basePath}\\Documents" );
 
         project.addFile( "path-listing.txt", "base path is ${basePath}\ndocuments path is ${docsPath}" );
         project.setResourceFiltering( 0, true );
diff --git a/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java b/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java
index 28948bf..28890f6 100644
--- a/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java
@@ -24,43 +24,37 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.maven.model.Resource;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.plugins.resources.stub.MavenProjectResourcesStub;
 import org.codehaus.plexus.util.FileUtils;
+import org.junit.jupiter.api.Test;
 
+import static org.apache.maven.api.plugin.testing.MojoExtension.setVariableValueToObject;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+@MojoTest
 public class TestResourcesTest
-    extends AbstractMojoTestCase
 {
-    protected final static String defaultPomFilePath = "/target/test-classes/unit/resources-test/plugin-config.xml";
 
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-    }
+    public static final String PLUGIN_CONFIG_XML = "classpath:/unit/resources-test/plugin-config.xml";
 
     /**
      * test mojo lookup, test harness should be working fine
-     *
-     * @throws Exception
      */
-    public void testHarnessEnvironment()
-        throws Exception
+    @Test
+    @InjectMojo( goal = "testResources", pom = PLUGIN_CONFIG_XML )
+    public void testHarnessEnvironment( TestResourcesMojo mojo )
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        ResourcesMojo mojo = (ResourcesMojo) lookupMojo( "testResources", testPom );
-
         assertNotNull( mojo );
     }
 
-    /**
-     * @throws Exception
-     */
-    public void testTestResourceDirectoryCreation()
+    @Test
+    @InjectMojo( goal = "testResources", pom = PLUGIN_CONFIG_XML )
+    public void testTestResourceDirectoryCreation( TestResourcesMojo mojo )
         throws Exception
     {
-        File testPom = new File( getBasedir(), defaultPomFilePath );
-        TestResourcesMojo mojo = (TestResourcesMojo) lookupMojo( "testResources", testPom );
         MavenProjectResourcesStub project = new MavenProjectResourcesStub( "testResourceDirectoryStructure" );
         List<Resource> resources = project.getBuild().getResources();
 
diff --git a/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBasicStub.java b/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBasicStub.java
index af9e4e9..a85a0f4 100644
--- a/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBasicStub.java
+++ b/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBasicStub.java
@@ -19,16 +19,27 @@ package org.apache.maven.plugins.resources.stub;
  * under the License.
  */
 
+import javax.annotation.Nonnull;
+
 import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
 import java.util.Properties;
 
+import org.apache.maven.api.Artifact;
+import org.apache.maven.api.Dependency;
+import org.apache.maven.api.Project;
+import org.apache.maven.model.Model;
 import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
 
 public class MavenProjectBasicStub
-    extends MavenProjectStub
+    implements Project
 {
+    protected Model model;
+
     protected String identifier;
 
     protected String testRootDir;
@@ -40,6 +51,7 @@ public class MavenProjectBasicStub
     public MavenProjectBasicStub( String id )
         throws Exception
     {
+        model = new Model();
         properties = new Properties();
         identifier = id;
         testRootDir = PlexusTestCase.getBasedir() + "/target/test-classes/unit/test-dir/" + identifier;
@@ -72,11 +84,11 @@ public class MavenProjectBasicStub
         }
     }
 
-    public File getBasedir()
+    public Path getBasedir()
     {
         // create an isolated environment
         // see setupTestEnvironment for details
-        return new File( testRootDir );
+        return Paths.get( testRootDir );
     }
 
     public String getGroupId()
@@ -101,11 +113,47 @@ public class MavenProjectBasicStub
 
     public void addProperty( String key, String value )
     {
-        properties.put( key, value );
+        model.getProperties().put( key, value );
+    }
+
+    @Nonnull
+    @Override
+    public Artifact getArtifact()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public Model getModel()
+    {
+        return model;
+    }
+
+    @Nonnull
+    @Override
+    public Path getPomPath()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public List<Dependency> getDependencies()
+    {
+        return null;
+    }
+
+    @Nonnull
+    @Override
+    public List<Dependency> getManagedDependencies()
+    {
+        return null;
     }
 
-    public Properties getProperties()
+    @Override
+    public boolean isExecutionRoot()
     {
-        return properties;
+        return false;
     }
 }
diff --git a/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBuildStub.java b/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBuildStub.java
index ad032c9..364ebe2 100644
--- a/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBuildStub.java
+++ b/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectBuildStub.java
@@ -67,6 +67,7 @@ public class MavenProjectBuildStub
         directoryList = new ArrayList<String>();
         dataMap = new HashMap<String, String>();
         setupBuild();
+        getModel().setBuild( build );
     }
 
     public void addDirectory( String name )
diff --git a/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectResourcesStub.java b/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectResourcesStub.java
index c3c26f2..c7cdeea 100644
--- a/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectResourcesStub.java
+++ b/src/test/java/org/apache/maven/plugins/resources/stub/MavenProjectResourcesStub.java
@@ -20,6 +20,7 @@ package org.apache.maven.plugins.resources.stub;
  */
 
 import java.io.File;
+import java.nio.file.Path;
 
 import org.apache.maven.model.Resource;
 
@@ -93,7 +94,7 @@ public class MavenProjectResourcesStub
         // of getBasedir
 
         // setup default resources
-        resource.setDirectory( getBasedir().getPath() + "/src/main/resources" );
+        resource.setDirectory( getBasedir() + "/src/main/resources" );
         resource.setFiltering( false );
         resource.setTargetPath( null );
         build.addResource( resource );
@@ -107,7 +108,7 @@ public class MavenProjectResourcesStub
         // of getBasedir
 
         // setup default test resources
-        resource.setDirectory( getBasedir().getPath() + "/src/test/resources" );
+        resource.setDirectory( getBasedir() + "/src/test/resources" );
         resource.setFiltering( false );
         resource.setTargetPath( null );
         build.addTestResource( resource );
@@ -115,7 +116,7 @@ public class MavenProjectResourcesStub
 
     public File getBaseDir()
     {
-        return baseDir == null ? super.getBasedir() : baseDir;
+        return baseDir == null ? super.getBasedir().toFile() : baseDir;
     }
 
     public void setBaseDir( File baseDir )