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 2018/02/14 20:04:43 UTC
[maven-artifact-transfer] 07/07: Added argument checks. Added
DefaultDependencyCollectorTest
This is an automated email from the ASF dual-hosted git repository.
khmarbaise pushed a commit to branch MSHARED-656
in repository https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git
commit b05a8f80c0d9c336cb68b46fb2338f67f072c479
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Wed Jan 31 21:31:44 2018 +0100
Added argument checks.
Added DefaultDependencyCollectorTest
---
.../dependencies/collect/DependencyCollector.java | 6 ++
.../internal/DefaultDependencyCollector.java | 52 +++++++++-
.../shared/project/deploy/ProjectDeployer.java | 2 +-
.../shared/project/install/ProjectInstaller.java | 2 +-
.../internal/DefaultDependencyCollectorTest.java | 115 +++++++++++++++++++++
5 files changed, 170 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java b/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java
index c7d6783..ce996ed 100644
--- a/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java
+++ b/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java
@@ -40,6 +40,8 @@ public interface DependencyCollector
* @param root {@link Dependency}
* @return {@link CollectorResult}
* @throws DependencyCollectorException in case of an error.
+ * @throws IllegalArgumentException in case of parameter <code>buildingRequest</code> is <code>null</code> or
+ * parameter <code>root</code> is <code>null</code>.
*/
CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest, Dependency root )
throws DependencyCollectorException;
@@ -50,6 +52,8 @@ public interface DependencyCollector
* @return {@link CollectorResult}
* @throws DependencyCollectorException in case of an error which can be a component lookup error or
* an error while trying to look up the dependencies.
+ * @throws IllegalArgumentException in case of parameter <code>buildingRequest</code> is <code>null</code> or
+ * parameter <code>root</code> is <code>null</code>.
*/
CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest, DependableCoordinate root )
throws DependencyCollectorException;
@@ -60,6 +64,8 @@ public interface DependencyCollector
* @return {@link CollectorResult}
* @throws DependencyCollectorException in case of an error which can be a component lookup error or
* an error while trying to look up the dependencies.
+ * @throws IllegalArgumentException in case of parameter <code>buildingRequest</code> is <code>null</code> or
+ * parameter <code>root</code> is <code>null</code>.
*/
CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest, Model root )
throws DependencyCollectorException;
diff --git a/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java b/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java
index 19bdc32..ed8f331 100644
--- a/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java
+++ b/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java
@@ -36,18 +36,21 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
/**
* This DependencyCollector passes the request to the proper Maven 3.x implementation
- *
+ *
* @author Robert Scholte
*/
@Component( role = DependencyCollector.class, hint = "default" )
-public class DefaultDependencyCollector implements DependencyCollector, Contextualizable
+public class DefaultDependencyCollector
+ implements DependencyCollector, Contextualizable
{
private PlexusContainer container;
-
+
@Override
public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest, Dependency root )
throws DependencyCollectorException
{
+ validateParameters( buildingRequest, root );
+
try
{
String hint = isMaven31() ? "maven31" : "maven3";
@@ -61,11 +64,13 @@ public class DefaultDependencyCollector implements DependencyCollector, Contextu
throw new DependencyCollectorException( e.getMessage(), e );
}
}
-
+
@Override
public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest, DependableCoordinate root )
throws DependencyCollectorException
{
+ validateParameters( buildingRequest, root );
+
try
{
String hint = isMaven31() ? "maven31" : "maven3";
@@ -79,11 +84,13 @@ public class DefaultDependencyCollector implements DependencyCollector, Contextu
throw new DependencyCollectorException( e.getMessage(), e );
}
}
-
+
@Override
public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest, Model root )
throws DependencyCollectorException
{
+ validateParameters( buildingRequest, root );
+
try
{
String hint = isMaven31() ? "maven31" : "maven3";
@@ -98,6 +105,41 @@ public class DefaultDependencyCollector implements DependencyCollector, Contextu
}
}
+ private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate root )
+ {
+ validateBuildingRequest( buildingRequest );
+ if ( root == null )
+ {
+ throw new IllegalArgumentException( "The parameter root is not allowed to be null." );
+ }
+ }
+
+ private void validateParameters( ProjectBuildingRequest buildingRequest, Dependency root )
+ {
+ validateBuildingRequest( buildingRequest );
+ if ( root == null )
+ {
+ throw new IllegalArgumentException( "The parameter root is not allowed to be null." );
+ }
+ }
+
+ private void validateParameters( ProjectBuildingRequest buildingRequest, Model root )
+ {
+ validateBuildingRequest( buildingRequest );
+ if ( root == null )
+ {
+ throw new IllegalArgumentException( "The parameter root is not allowed to be null." );
+ }
+ }
+
+ private void validateBuildingRequest( ProjectBuildingRequest buildingRequest )
+ {
+ if ( buildingRequest == null )
+ {
+ throw new IllegalArgumentException( "The parameter buildingRequest is not allowed to be null." );
+ }
+ }
+
/**
* @return true if the current Maven version is Maven 3.1.
*/
diff --git a/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java b/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java
index 98e131d..b09adeb 100644
--- a/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java
+++ b/src/main/java/org/apache/maven/shared/project/deploy/ProjectDeployer.java
@@ -62,6 +62,6 @@ public interface ProjectDeployer
*/
void deploy( ProjectBuildingRequest buildingRequest, ProjectDeployerRequest request,
ArtifactRepository artifactRepository )
- throws NoFileAssignedException, IllegalArgumentException, ArtifactDeployerException;
+ throws NoFileAssignedException, ArtifactDeployerException;
}
diff --git a/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java b/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java
index 8d92cf5..0fab22e 100644
--- a/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java
+++ b/src/main/java/org/apache/maven/shared/project/install/ProjectInstaller.java
@@ -74,6 +74,6 @@ public interface ProjectInstaller
* parameter <code>projectInstallerRequest</code> is <code>null</code>.
*/
void install( ProjectBuildingRequest projectBuildingRequest, ProjectInstallerRequest projectInstallerRequest )
- throws IOException, ArtifactInstallerException, NoFileAssignedException, IllegalArgumentException;
+ throws IOException, ArtifactInstallerException, NoFileAssignedException;
}
diff --git a/src/test/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollectorTest.java b/src/test/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollectorTest.java
new file mode 100644
index 0000000..5e48299
--- /dev/null
+++ b/src/test/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollectorTest.java
@@ -0,0 +1,115 @@
+package org.apache.maven.shared.dependencies.collect.internal;
+
+/*
+ * 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.
+ */
+
+import static org.mockito.Mockito.mock;
+
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.deploy.ArtifactDeployerException;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.dependencies.DependableCoordinate;
+import org.apache.maven.shared.dependencies.collect.DependencyCollector;
+import org.apache.maven.shared.dependencies.collect.DependencyCollectorException;
+import org.apache.maven.shared.dependencies.collect.internal.DefaultDependencyCollector;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+public class DefaultDependencyCollectorTest
+{
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ private DependencyCollector dc;
+
+ @Before
+ public void setUp()
+ {
+ dc = new DefaultDependencyCollector();
+ }
+
+ @Test
+ public void collectDependenciesWithDependableCoordinatShouldFailWithIAEWhenParameterBuildingRequestIsNull()
+ throws ArtifactDeployerException, ArtifactResolverException, DependencyCollectorException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter buildingRequest is not allowed to be null." );
+
+ dc.collectDependencies( null, (DependableCoordinate) null );
+ }
+
+ @Test
+ public void collectDependenciesWithDependableCoordinatShouldFailWithIAEWhenParameterRootIsNull()
+ throws ArtifactDeployerException, ArtifactResolverException, DependencyCollectorException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter root is not allowed to be null." );
+
+ ProjectBuildingRequest request = mock( ProjectBuildingRequest.class );
+ dc.collectDependencies( request, (DependableCoordinate) null );
+ }
+
+ @Test
+ public void collectDependenciesWithDependencyShouldFailWithIAEWhenParameterBuildingRequestIsNull()
+ throws ArtifactDeployerException, ArtifactResolverException, DependencyCollectorException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter buildingRequest is not allowed to be null." );
+
+ dc.collectDependencies( null, (Dependency) null );
+ }
+
+ @Test
+ public void collectDependenciesWithDependencyShouldFailWithIAEWhenParameterRootIsNull()
+ throws ArtifactDeployerException, ArtifactResolverException, DependencyCollectorException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter root is not allowed to be null." );
+
+ ProjectBuildingRequest request = mock( ProjectBuildingRequest.class );
+ dc.collectDependencies( request, (Dependency) null );
+ }
+
+ @Test
+ public void collectDependenciesWithModelShouldFailWithIAEWhenParameterBuildingRequestIsNull()
+ throws ArtifactDeployerException, ArtifactResolverException, DependencyCollectorException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter buildingRequest is not allowed to be null." );
+
+ dc.collectDependencies( null, (Model) null );
+ }
+
+ @Test
+ public void collectDependenciesWithModelShouldFailWithIAEWhenParameterRootIsNull()
+ throws ArtifactDeployerException, ArtifactResolverException, DependencyCollectorException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter root is not allowed to be null." );
+
+ ProjectBuildingRequest request = mock( ProjectBuildingRequest.class );
+ dc.collectDependencies( request, (Model) null );
+ }
+
+}
--
To stop receiving notification emails like this one, please contact
khmarbaise@apache.org.