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

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new 73f8883d Migration to JUnit 5 - avoid using AbstractMojoTestCase
73f8883d is described below

commit 73f8883d9c3f71f2a23e5187a4689482d662dbb0
Author: Slawomir Jaranowski <[email protected]>
AuthorDate: Sat Nov 22 20:32:56 2025 +0100

    Migration to JUnit 5 - avoid using AbstractMojoTestCase
    
    Next part
---
 .../plugins/dependency/TestPropertiesMojo.java     |  72 +++---
 .../dependency/analyze/TestAnalyzeDepMgt.java      |  10 +-
 .../analyze/TestAnalyzeDuplicateMojo.java          | 249 +++++----------------
 .../stubs/DuplicateDependencies2ProjectStub.java   |  60 -----
 .../stubs/DuplicateDependenciesProjectStub.java    |  60 -----
 .../unit/properties-test/plugin-config.xml         |  42 ----
 6 files changed, 91 insertions(+), 402 deletions(-)

diff --git 
a/src/test/java/org/apache/maven/plugins/dependency/TestPropertiesMojo.java 
b/src/test/java/org/apache/maven/plugins/dependency/TestPropertiesMojo.java
index 2e3db085..3b9037f9 100644
--- a/src/test/java/org/apache/maven/plugins/dependency/TestPropertiesMojo.java
+++ b/src/test/java/org/apache/maven/plugins/dependency/TestPropertiesMojo.java
@@ -18,63 +18,49 @@
  */
 package org.apache.maven.plugins.dependency;
 
+import javax.inject.Inject;
+
 import java.io.File;
-import java.util.Set;
+import java.util.Arrays;
+import java.util.HashSet;
 
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoExtension;
+import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.execution.MavenSession;
-import 
org.apache.maven.plugins.dependency.testUtils.stubs.DependencyProjectStub;
 import org.apache.maven.project.MavenProject;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
 
-public class TestPropertiesMojo extends AbstractDependencyMojoTestCase {
-
-    @Override
-    protected String getTestDirectoryName() {
-        return "markers";
-    }
-
-    @Override
-    protected boolean shouldCreateFiles() {
-        return true;
-    }
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.when;
 
-    @Override
-    protected void setUp() throws Exception {
-        // required for mojo lookups to work
-        super.setUp();
+@MojoTest
+public class TestPropertiesMojo {
 
-        MavenProject project = new DependencyProjectStub();
-        getContainer().addComponent(project, MavenProject.class.getName());
+    @Inject
+    private MavenProject project;
 
-        MavenSession session = newMavenSession(project);
-        getContainer().addComponent(session, MavenSession.class.getName());
-    }
+    @Test
+    @InjectMojo(goal = "properties")
+    public void testSetProperties(PropertiesMojo mojo) throws Exception {
 
-    /**
-     * tests the proper discovery and configuration of the mojo
-     *
-     * @throws Exception in case of errors
-     */
-    public void testSetProperties() throws Exception {
-        File testPom = new File(getBasedir(), 
"target/test-classes/unit/properties-test/plugin-config.xml");
-        PropertiesMojo mojo = (PropertiesMojo) lookupMojo("properties", 
testPom);
+        Artifact artifact1 = Mockito.mock(Artifact.class);
+        Artifact artifact2 = Mockito.mock(Artifact.class);
 
-        assertNotNull(mojo);
-        MavenProject project = (MavenProject) getVariableValueFromObject(mojo, 
"project");
-        assertNotNull(project);
+        
when(artifact1.getDependencyConflictId()).thenReturn("group1:artifact1");
+        when(artifact1.getFile()).thenReturn(new 
File(MojoExtension.getBasedir(), "artifact1.jar"));
 
-        Set<Artifact> artifacts = this.stubFactory.getScopedArtifacts();
-        Set<Artifact> directArtifacts = 
this.stubFactory.getReleaseAndSnapshotArtifacts();
-        artifacts.addAll(directArtifacts);
+        
when(artifact2.getDependencyConflictId()).thenReturn("group2:artifact2");
+        when(artifact2.getFile()).thenReturn(new 
File(MojoExtension.getBasedir(), "artifact2.jar"));
 
-        project.setArtifacts(artifacts);
+        when(artifact2.getVersion()).thenReturn("2.0.0");
+        when(this.project.getArtifacts()).thenReturn(new 
HashSet<>(Arrays.asList(artifact1, artifact2)));
 
         mojo.execute();
 
-        for (Artifact artifact : artifacts) {
-            File artifactFile = artifact.getFile();
-            assertNotNull(artifact.getDependencyConflictId());
-            assertTrue(artifactFile.isFile());
-        }
+        // Verify that properties are set correctly
+        
assertTrue(project.getProperties().getProperty("group1:artifact1").endsWith("artifact1.jar"));
+        
assertTrue(project.getProperties().getProperty("group2:artifact2").endsWith("artifact2.jar"));
     }
 }
diff --git 
a/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDepMgt.java
 
b/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDepMgt.java
index c27b2a7e..674bcd15 100644
--- 
a/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDepMgt.java
+++ 
b/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDepMgt.java
@@ -36,11 +36,11 @@ import org.apache.maven.project.MavenProject;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 class TestAnalyzeDepMgt {
 
diff --git 
a/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDuplicateMojo.java
 
b/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDuplicateMojo.java
index b0b75809..b09c5697 100644
--- 
a/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDuplicateMojo.java
+++ 
b/src/test/java/org/apache/maven/plugins/dependency/analyze/TestAnalyzeDuplicateMojo.java
@@ -18,214 +18,79 @@
  */
 package org.apache.maven.plugins.dependency.analyze;
 
+import javax.inject.Inject;
+
 import java.io.File;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 
-import org.apache.maven.execution.MavenSession;
+import org.apache.maven.api.di.Provides;
+import org.apache.maven.api.plugin.testing.Basedir;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoExtension;
+import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
-import 
org.apache.maven.plugins.dependency.testUtils.stubs.DuplicateDependencies2ProjectStub;
-import 
org.apache.maven.plugins.dependency.testUtils.stubs.DuplicateDependenciesProjectStub;
 import org.apache.maven.project.MavenProject;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 /**
  * @author <a href="mailto:[email protected]";>Vincent Siveton</a>
  * @version $Id$
  */
-public class TestAnalyzeDuplicateMojo extends AbstractDependencyMojoTestCase {
-    public void testDuplicate() throws Exception {
-        MavenProject project = new DuplicateDependenciesProjectStub();
-        getContainer().addComponent(project, MavenProject.class.getName());
-
-        MavenSession session = newMavenSession(project);
-        getContainer().addComponent(session, MavenSession.class.getName());
-
-        File testPom = new File(getBasedir(), 
"target/test-classes/unit/duplicate-dependencies/plugin-config.xml");
-        AnalyzeDuplicateMojo mojo = (AnalyzeDuplicateMojo) 
lookupMojo("analyze-duplicate", testPom);
-        assertNotNull(mojo);
-        DuplicateLog log = new DuplicateLog();
-        mojo.setLog(log);
-        mojo.execute();
+@ExtendWith(MockitoExtension.class)
+@MojoTest
+public class TestAnalyzeDuplicateMojo {
 
-        assertTrue(log.getContent()
-                .contains("List of duplicate dependencies defined in 
<dependencies/> in " + "your pom.xml"));
-        assertTrue(log.getContent().contains("junit:junit:jar"));
-    }
+    @Inject
+    private MavenProject project;
+
+    @Mock
+    private Log log;
 
-    public void testDuplicate2() throws Exception {
-        MavenProject project = new DuplicateDependencies2ProjectStub();
-        getContainer().addComponent(project, MavenProject.class.getName());
+    @Provides
+    private Log logProvides() {
+        return log;
+    }
 
-        MavenSession session = newMavenSession(project);
-        getContainer().addComponent(session, MavenSession.class.getName());
+    @Test
+    @Basedir("/unit/duplicate-dependencies")
+    @InjectMojo(goal = "analyze-duplicate")
+    public void testDuplicate(AnalyzeDuplicateMojo mojo) throws Exception {
+        when(project.getFile()).thenReturn(new 
File(MojoExtension.getBasedir(), "plugin-config.xml"));
+        when(log.isInfoEnabled()).thenReturn(true);
 
-        File testPom = new File(getBasedir(), 
"target/test-classes/unit/duplicate-dependencies/plugin-config2.xml");
-        AnalyzeDuplicateMojo mojo = (AnalyzeDuplicateMojo) 
lookupMojo("analyze-duplicate", testPom);
-        assertNotNull(mojo);
-        DuplicateLog log = new DuplicateLog();
-        mojo.setLog(log);
         mojo.execute();
 
-        assertTrue(log.getContent()
-                .contains("List of duplicate dependencies defined in 
<dependencyManagement/> in " + "your pom.xml"));
-        assertTrue(log.getContent().contains("junit:junit:jar"));
+        ArgumentCaptor<String> logCapture = 
ArgumentCaptor.forClass(String.class);
+        verify(log).info(logCapture.capture());
+
+        assertTrue(logCapture
+                .getValue()
+                .contains("List of duplicate dependencies defined in 
<dependencies/> in your pom.xml"));
+        assertTrue(logCapture.getValue().contains("junit:junit:jar"));
     }
 
-    static class DuplicateLog implements Log {
-        StringBuilder sb = new StringBuilder();
-
-        /** {@inheritDoc} */
-        @Override
-        public void debug(CharSequence content) {
-            print("debug", content);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void debug(CharSequence content, Throwable error) {
-            print("debug", content, error);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void debug(Throwable error) {
-            print("debug", error);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void info(CharSequence content) {
-            print("info", content);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void info(CharSequence content, Throwable error) {
-            print("info", content, error);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void info(Throwable error) {
-            print("info", error);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void warn(CharSequence content) {
-            print("warn", content);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void warn(CharSequence content, Throwable error) {
-            print("warn", content, error);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void warn(Throwable error) {
-            print("warn", error);
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void error(CharSequence content) {
-            System.err.println("[error] " + content.toString());
-        }
-
-        /** {@inheritDoc} */
-        @Override
-        public void error(CharSequence content, Throwable error) {
-            StringWriter sWriter = new StringWriter();
-            PrintWriter pWriter = new PrintWriter(sWriter);
-
-            error.printStackTrace(pWriter);
-
-            System.err.println(
-                    "[error] " + content.toString() + System.lineSeparator() + 
System.lineSeparator() + sWriter);
-        }
-
-        /**
-         * @see org.apache.maven.plugin.logging.Log#error(java.lang.Throwable)
-         */
-        @Override
-        public void error(Throwable error) {
-            StringWriter sWriter = new StringWriter();
-            PrintWriter pWriter = new PrintWriter(sWriter);
-
-            error.printStackTrace(pWriter);
-
-            System.err.println("[error] " + sWriter);
-        }
-
-        /**
-         * @see org.apache.maven.plugin.logging.Log#isDebugEnabled()
-         */
-        @Override
-        public boolean isDebugEnabled() {
-            return false;
-        }
-
-        /**
-         * @see org.apache.maven.plugin.logging.Log#isInfoEnabled()
-         */
-        @Override
-        public boolean isInfoEnabled() {
-            return true;
-        }
-
-        /**
-         * @see org.apache.maven.plugin.logging.Log#isWarnEnabled()
-         */
-        @Override
-        public boolean isWarnEnabled() {
-            return true;
-        }
-
-        /**
-         * @see org.apache.maven.plugin.logging.Log#isErrorEnabled()
-         */
-        @Override
-        public boolean isErrorEnabled() {
-            return true;
-        }
-
-        private void print(String prefix, CharSequence content) {
-            sb.append("[")
-                    .append(prefix)
-                    .append("] ")
-                    .append(content.toString())
-                    .append(System.lineSeparator());
-        }
-
-        private void print(String prefix, Throwable error) {
-            StringWriter sWriter = new StringWriter();
-            PrintWriter pWriter = new PrintWriter(sWriter);
-
-            error.printStackTrace(pWriter);
-
-            sb.append("[").append(prefix).append("] 
").append(sWriter).append(System.lineSeparator());
-        }
-
-        private void print(String prefix, CharSequence content, Throwable 
error) {
-            StringWriter sWriter = new StringWriter();
-            PrintWriter pWriter = new PrintWriter(sWriter);
-
-            error.printStackTrace(pWriter);
-
-            sb.append("[")
-                    .append(prefix)
-                    .append("] ")
-                    .append(content.toString())
-                    .append(System.lineSeparator())
-                    .append(System.lineSeparator());
-            sb.append(sWriter).append(System.lineSeparator());
-        }
-
-        protected String getContent() {
-            return sb.toString();
-        }
+    @Test
+    @Basedir("/unit/duplicate-dependencies")
+    @InjectMojo(goal = "analyze-duplicate")
+    public void testDuplicate2(AnalyzeDuplicateMojo mojo) throws Exception {
+        when(project.getFile()).thenReturn(new 
File(MojoExtension.getBasedir(), "plugin-config2.xml"));
+        when(log.isInfoEnabled()).thenReturn(true);
+
+        mojo.execute();
+
+        ArgumentCaptor<String> logCapture = 
ArgumentCaptor.forClass(String.class);
+        verify(log).info(logCapture.capture());
+
+        assertTrue(logCapture
+                .getValue()
+                .contains("List of duplicate dependencies defined in 
<dependencyManagement/> in your pom.xml"));
+        assertTrue(logCapture.getValue().contains("junit:junit:jar"));
     }
 }
diff --git 
a/src/test/java/org/apache/maven/plugins/dependency/testUtils/stubs/DuplicateDependencies2ProjectStub.java
 
b/src/test/java/org/apache/maven/plugins/dependency/testUtils/stubs/DuplicateDependencies2ProjectStub.java
deleted file mode 100644
index a9c52838..00000000
--- 
a/src/test/java/org/apache/maven/plugins/dependency/testUtils/stubs/DuplicateDependencies2ProjectStub.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.dependency.testUtils.stubs;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
-/**
- * very simple stub of maven project, going to take a lot of work to make it 
useful as a stub though
- */
-public class DuplicateDependencies2ProjectStub extends MavenProjectStub {
-    public DuplicateDependencies2ProjectStub() {
-        File pom = new File(getBasedir(), "plugin-config2.xml");
-        MavenXpp3Reader pomReader = new MavenXpp3Reader();
-
-        try (FileInputStream in = new FileInputStream(pom)) {
-            Model model = pomReader.read(in);
-            setModel(model);
-
-            setGroupId(model.getGroupId());
-            setArtifactId(model.getArtifactId());
-            setVersion(model.getVersion());
-            setName(model.getName());
-            setUrl(model.getUrl());
-            setPackaging(model.getPackaging());
-            setFile(pom);
-        } catch (IOException | XmlPullParserException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    /**
-     * @see org.apache.maven.plugin.testing.stubs.MavenProjectStub#getBasedir()
-     */
-    public File getBasedir() {
-        return new File(super.getBasedir() + 
"/src/test/resources/unit/duplicate-dependencies");
-    }
-}
diff --git 
a/src/test/java/org/apache/maven/plugins/dependency/testUtils/stubs/DuplicateDependenciesProjectStub.java
 
b/src/test/java/org/apache/maven/plugins/dependency/testUtils/stubs/DuplicateDependenciesProjectStub.java
deleted file mode 100644
index 662248dd..00000000
--- 
a/src/test/java/org/apache/maven/plugins/dependency/testUtils/stubs/DuplicateDependenciesProjectStub.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.dependency.testUtils.stubs;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
-
-/**
- * very simple stub of maven project, going to take a lot of work to make it 
useful as a stub though
- */
-public class DuplicateDependenciesProjectStub extends MavenProjectStub {
-    public DuplicateDependenciesProjectStub() {
-        File pom = new File(getBasedir(), "plugin-config.xml");
-        MavenXpp3Reader pomReader = new MavenXpp3Reader();
-
-        try (FileInputStream in = new FileInputStream(pom)) {
-            Model model = pomReader.read(in);
-            setModel(model);
-
-            setGroupId(model.getGroupId());
-            setArtifactId(model.getArtifactId());
-            setVersion(model.getVersion());
-            setName(model.getName());
-            setUrl(model.getUrl());
-            setPackaging(model.getPackaging());
-            setFile(pom);
-        } catch (IOException | XmlPullParserException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    /**
-     * @see org.apache.maven.plugin.testing.stubs.MavenProjectStub#getBasedir()
-     */
-    public File getBasedir() {
-        return new File(super.getBasedir() + 
"/src/test/resources/unit/duplicate-dependencies");
-    }
-}
diff --git a/src/test/resources/unit/properties-test/plugin-config.xml 
b/src/test/resources/unit/properties-test/plugin-config.xml
deleted file mode 100644
index e7edfc50..00000000
--- a/src/test/resources/unit/properties-test/plugin-config.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License. 
- *
--->
-<project>
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-          <configuration>
-          </configuration>
-      </plugin>
-    </plugins>
-  </build>
-    <dependencies>
-        <dependency>
-          <groupId>org.apache.maven</groupId>
-          <artifactId>maven-artifact</artifactId>
-          <version>2.0.9</version>
-        </dependency>
-        <dependency>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-          <version>4.1</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file

Reply via email to