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:11:10 UTC
[maven-artifact-transfer] 01/01: [MSHARED-680] - Add null check for
DependencyResolver Interface
This is an automated email from the ASF dual-hosted git repository.
khmarbaise pushed a commit to branch MSHARED-680
in repository https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git
commit 3507d8139bc0defb0da9aa932d9da23cff9aff2c
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Fri Feb 2 15:05:14 2018 +0100
[MSHARED-680] - Add null check for DependencyResolver Interface
---
.../internal/DefaultDependencyResolver.java | 51 ++++++++-
.../internal/DefaultDependencyResolverTest.java | 118 +++++++++++++++++++++
2 files changed, 164 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/apache/maven/shared/dependencies/resolve/internal/DefaultDependencyResolver.java b/src/main/java/org/apache/maven/shared/dependencies/resolve/internal/DefaultDependencyResolver.java
index a58a80a..4db1828 100644
--- a/src/main/java/org/apache/maven/shared/dependencies/resolve/internal/DefaultDependencyResolver.java
+++ b/src/main/java/org/apache/maven/shared/dependencies/resolve/internal/DefaultDependencyResolver.java
@@ -51,7 +51,7 @@ public class DefaultDependencyResolver
Collection<Dependency> coordinates,
Collection<Dependency> managedDependencies,
TransformableFilter filter )
- throws DependencyResolverException
+ throws DependencyResolverException
{
try
{
@@ -70,8 +70,9 @@ public class DefaultDependencyResolver
@Override
public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
DependableCoordinate coordinate, TransformableFilter filter )
- throws DependencyResolverException
+ throws DependencyResolverException
{
+ validateParameters( buildingRequest, coordinate, filter );
try
{
String hint = isMaven31() ? "maven31" : "maven3";
@@ -85,12 +86,13 @@ public class DefaultDependencyResolver
throw new DependencyResolverException( e.getMessage(), e );
}
}
-
+
@Override
- public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
- Model model, TransformableFilter filter )
+ public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest, Model model,
+ TransformableFilter filter )
throws DependencyResolverException
{
+ validateParameters( buildingRequest, model, filter );
try
{
String hint = isMaven31() ? "maven31" : "maven3";
@@ -138,4 +140,43 @@ public class DefaultDependencyResolver
{
container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
}
+
+ private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate coordinate,
+ TransformableFilter filter )
+ {
+ validateBuildingRequest( buildingRequest );
+ if ( coordinate == null )
+ {
+ throw new IllegalArgumentException( "The parameter coordinate is not allowed to be null." );
+ }
+ if ( filter == null )
+ {
+ throw new IllegalArgumentException( "The parameter filter is not allowed to be null." );
+ }
+
+ }
+
+ private void validateParameters( ProjectBuildingRequest buildingRequest, Model model,
+ TransformableFilter filter )
+ {
+ validateBuildingRequest( buildingRequest );
+ if ( model == null )
+ {
+ throw new IllegalArgumentException( "The parameter model is not allowed to be null." );
+ }
+ if ( filter == null )
+ {
+ throw new IllegalArgumentException( "The parameter filter 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." );
+ }
+ }
+
}
diff --git a/src/test/java/org/apache/maven/shared/dependencies/resolve/internal/DefaultDependencyResolverTest.java b/src/test/java/org/apache/maven/shared/dependencies/resolve/internal/DefaultDependencyResolverTest.java
new file mode 100644
index 0000000..2a512ac
--- /dev/null
+++ b/src/test/java/org/apache/maven/shared/dependencies/resolve/internal/DefaultDependencyResolverTest.java
@@ -0,0 +1,118 @@
+package org.apache.maven.shared.dependencies.resolve.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.Model;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.dependencies.DependableCoordinate;
+import org.apache.maven.shared.dependencies.resolve.DependencyResolver;
+import org.apache.maven.shared.dependencies.resolve.DependencyResolverException;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+/**
+ * Check the parameter contracts which have been made based on the interface {@link DependencyResolver}.
+ *
+ * @author Karl Heinz Marbaise <a href="mailto:khmarbaise@apache.org">khmabaise@apache.org</a>
+ */
+public class DefaultDependencyResolverTest
+{
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ private DependencyResolver dr;
+
+ @Before
+ public void setUp()
+ {
+ dr = new DefaultDependencyResolver();
+ }
+
+ @Test
+ public void resolveDependenciesWithDependableCoordinatShouldFailWithIAEWhenParameterBuildingRequestIsNull()
+ throws DependencyResolverException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter buildingRequest is not allowed to be null." );
+
+ dr.resolveDependencies( null, (DependableCoordinate) null, null );
+ }
+
+ @Test
+ public void resolveDependenciesWithDependableCoordinatShouldFailWithIAEWhenParameterCoordinateIsNull()
+ throws DependencyResolverException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter coordinate is not allowed to be null." );
+
+ ProjectBuildingRequest request = mock( ProjectBuildingRequest.class );
+ dr.resolveDependencies( request, (DependableCoordinate) null, null );
+ }
+
+ @Test
+ public void resolveDependenciesWithDependableCoordinatShouldFailWithIAEWhenParameterFilterIsNull()
+ throws DependencyResolverException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter filter is not allowed to be null." );
+
+ ProjectBuildingRequest request = mock( ProjectBuildingRequest.class );
+ DependableCoordinate dc = mock( DependableCoordinate.class );
+ dr.resolveDependencies( request, dc, null );
+ }
+
+ @Test
+ public void resolveDependenciesWithModelShouldFailWithIAEWhenParameterBuildingRequestIsNull()
+ throws DependencyResolverException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter buildingRequest is not allowed to be null." );
+
+ dr.resolveDependencies( null, (Model) null, null );
+ }
+
+ @Test
+ public void resolveDependenciesWithModelShouldFailWithIAEWhenParameterModelIsNull()
+ throws DependencyResolverException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter model is not allowed to be null." );
+
+ ProjectBuildingRequest request = mock( ProjectBuildingRequest.class );
+ dr.resolveDependencies( request, (Model) null, null );
+ }
+
+ @Test
+ public void resolveDependenciesWithModelShouldFailWithIAEWhenParameterFilterIsNull()
+ throws DependencyResolverException
+ {
+ thrown.expect( IllegalArgumentException.class );
+ thrown.expectMessage( "The parameter filter is not allowed to be null." );
+
+ ProjectBuildingRequest request = mock( ProjectBuildingRequest.class );
+ Model model = mock( Model.class );
+ dr.resolveDependencies( request, model, null );
+ }
+
+}
--
To stop receiving notification emails like this one, please contact
khmarbaise@apache.org.