You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2017/08/20 18:39:48 UTC
svn commit: r1805576 - in /maven/shared/trunk/maven-artifact-transfer/src:
main/java/org/apache/maven/shared/artifact/install/
main/java/org/apache/maven/shared/artifact/install/internal/
test/java/org/apache/maven/shared/artifact/install/internal/
Author: khmarbaise
Date: Sun Aug 20 18:39:47 2017
New Revision: 1805576
URL: http://svn.apache.org/viewvc?rev=1805576&view=rev
Log:
[MSHARED-655] ArtifactInstaller check for integrity of parameters null, empty collection, being a directory
o Followup added test for the second part of the interface.
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/ArtifactInstaller.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstaller.java
maven/shared/trunk/maven-artifact-transfer/src/test/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstallerTest.java
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/ArtifactInstaller.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/ArtifactInstaller.java?rev=1805576&r1=1805575&r2=1805576&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/ArtifactInstaller.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/ArtifactInstaller.java Sun Aug 20 18:39:47 2017
@@ -35,6 +35,9 @@ public interface ArtifactInstaller
* @param request {@link ProjectBuildingRequest}
* @param mavenArtifacts {@link Artifact}
* @throws ArtifactInstallerException in case of an error.
+ * @throws IllegalArgumentException in case of parameter <code>request</code> is <code>null</code> or parameter
+ * <code>mavenArtifacts</code> is <code>null</code> or <code>mavenArtifacts.isEmpty()</code> is
+ * <code>true</code>.
*/
void install( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
throws ArtifactInstallerException;
@@ -45,6 +48,10 @@ public interface ArtifactInstaller
* @param mavenArtifacts Collection of {@link Artifact MavenArtifacts}
* @throws ArtifactInstallerException In case of an error which can be the a given artifact can not be found or the
* installation has failed.
+ * @throws IllegalArgumentException in case of parameter <code>request</code> is <code>null</code> or parameter
+ * <code>localRepository</code> is <code>null</code> or <code>localRepository</code> is not a directory
+ * or parameter <code>mavenArtifacts</code> is <code>null</code> or
+ * <code>mavenArtifacts.isEmpty()</code> is <code>true</code>.
*/
void install( ProjectBuildingRequest request, File localRepository, Collection<Artifact> mavenArtifacts )
throws ArtifactInstallerException;
Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstaller.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstaller.java?rev=1805576&r1=1805575&r2=1805576&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstaller.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstaller.java Sun Aug 20 18:39:47 2017
@@ -78,6 +78,8 @@ public class DefaultArtifactInstaller
throw new IllegalArgumentException( "The parameter localRepository must be a directory." );
}
+ // TODO: Should we check for exists() ?
+
try
{
String hint = isMaven31() ? "maven31" : "maven3";
@@ -107,7 +109,7 @@ public class DefaultArtifactInstaller
throw new IllegalArgumentException( "The collection mavenArtifacts is not allowed to be empty." );
}
}
-
+
/**
* @return true if the current Maven version is Maven 3.1.
*/
Modified: maven/shared/trunk/maven-artifact-transfer/src/test/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstallerTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/test/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstallerTest.java?rev=1805576&r1=1805575&r2=1805576&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/test/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstallerTest.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/test/java/org/apache/maven/shared/artifact/install/internal/DefaultArtifactInstallerTest.java Sun Aug 20 18:39:47 2017
@@ -20,12 +20,15 @@ package org.apache.maven.shared.artifact
*/
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import java.io.File;
import java.util.Collections;
+import java.util.List;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.ProjectBuildingRequest;
-
+import org.apache.maven.shared.artifact.install.ArtifactInstaller;
import org.apache.maven.shared.artifact.install.ArtifactInstallerException;
import org.junit.Rule;
import org.junit.Test;
@@ -75,4 +78,60 @@ public class DefaultArtifactInstallerTes
ProjectBuildingRequest pbr = mock( ProjectBuildingRequest.class );
dai.install( pbr, Collections.<Artifact>emptyList() );
}
+
+ @Test
+ public void installWith3ParametersShouldReturnIllegalArgumentExceptionForFirstParameterWithNull()
+ throws ArtifactInstallerException
+ {
+ DefaultArtifactInstaller dai = new DefaultArtifactInstaller();
+
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter request is not allowed to be null." );
+ File localRepository = mock( File.class );
+ dai.install( null, localRepository, Collections.<Artifact>emptyList() );
+ }
+
+ @Test
+ public void installWith3ParametersShouldReturnIllegalArgumentExceptionForSecondParameterWithNull()
+ throws ArtifactInstallerException
+ {
+ DefaultArtifactInstaller dai = new DefaultArtifactInstaller();
+
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter localRepository is not allowed to be null." );
+
+ List<Artifact> singleEntryList = Collections.singletonList( mock( Artifact.class ) );
+ ProjectBuildingRequest pbr = mock( ProjectBuildingRequest.class );
+ dai.install( pbr, null, singleEntryList );
+ }
+
+ @Test
+ public void installWith3ParametersShouldReturnIllegalArgumentExceptionForSecondParameterNotADirectory()
+ throws ArtifactInstallerException
+ {
+ DefaultArtifactInstaller dai = new DefaultArtifactInstaller();
+
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter mavenArtifacts is not allowed to be null." );
+ ProjectBuildingRequest pbr = mock( ProjectBuildingRequest.class );
+ List<Artifact> singleEntryList = Collections.singletonList( mock( Artifact.class ) );
+
+ File localRepository = mock( File.class );
+ when( localRepository.isDirectory() ).thenReturn( false );
+ dai.install( pbr, localRepository, singleEntryList );
+ }
+
+ @Test
+ public void installWith3ParametersShouldReturnIllegalArgumentExceptionForThirdParameterWithNull()
+ throws ArtifactInstallerException
+ {
+ DefaultArtifactInstaller dai = new DefaultArtifactInstaller();
+
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter mavenArtifacts is not allowed to be null." );
+ ProjectBuildingRequest pbr = mock( ProjectBuildingRequest.class );
+ File localRepository = mock( File.class );
+ dai.install( pbr, localRepository, null );
+ }
+
}