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