From 6e6efcbb285d972cd0aa2119a94f683c06164448 Mon Sep 17 00:00:00 2001 From: ajarmoniuk Date: Thu, 4 Aug 2022 13:05:02 +0200 Subject: [PATCH] Reordering the checks in shouldApplyUpdate + a simple unit test --- .../versions/AbstractVersionsUpdaterMojo.java | 12 ++--- .../mojo/versions/UpdateParentMojoTest.java | 45 +++++++++++++++++++ 2 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java diff --git a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java index cdfe1a708..9166a3c89 100644 --- a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java @@ -457,18 +457,18 @@ protected boolean shouldApplyUpdate( Artifact artifact, String currentVersion, A { getLog().debug( "Proposal is to update from " + currentVersion + " to " + updateVersion ); - if ( forceUpdate ) - { - getLog().info( "Force update enabled. LATEST or RELEASE versions will be overwritten with real version" ); - return true; - } - if ( updateVersion == null ) { getLog().warn( "Not updating version: could not resolve any versions" ); return false; } + if ( forceUpdate ) + { + getLog().info( "Force update enabled. LATEST or RELEASE versions will be overwritten with real version" ); + return true; + } + artifact.setVersion( updateVersion.toString() ); try { diff --git a/src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java b/src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java new file mode 100644 index 000000000..8ba1f990f --- /dev/null +++ b/src/test/java/org/codehaus/mojo/versions/UpdateParentMojoTest.java @@ -0,0 +1,45 @@ +package org.codehaus.mojo.versions; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.versioning.ArtifactVersion; +import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.artifact.ProjectArtifact; +import org.junit.Test; + +import javax.xml.stream.XMLStreamException; +import java.util.Collections; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class UpdateParentMojoTest { + + @Test + public void testArtifactIdDoesNotExist() throws MojoExecutionException, XMLStreamException, MojoFailureException { + UpdateParentMojo mojo = new UpdateParentMojo() { + { + project = new MavenProject(); + project.setParent(new MavenProject()); + reactorProjects = Collections.emptyList(); + forceUpdate = true; + + artifactFactory = mock(ArtifactFactory.class); + when(artifactFactory.createDependencyArtifact(anyString(), anyString(), any(VersionRange.class), + anyString(), anyString(), anyString())) + .thenReturn(new ProjectArtifact(project)); + } + + protected ArtifactVersion findLatestVersion(Artifact artifact, VersionRange versionRange, + Boolean allowingSnapshots, boolean usePluginRepositories) { + return null; + } + }; + mojo.update(null); + } +}