This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a commit to branch resolver
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
The following commit(s) were added to refs/heads/resolver by this push:
new 0032b33 unit tests
0032b33 is described below
commit 0032b338a346bd7949edeebf6a2b5aa83d2716ec
Author: tibordigana <[email protected]>
AuthorDate: Tue Jan 21 00:55:01 2020 +0100
unit tests
---
.../surefire/SurefireDependencyResolverTest.java | 202 ++++++++++-----------
1 file changed, 93 insertions(+), 109 deletions(-)
diff --git
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java
index 1ea7002..fe2bf93 100644
---
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java
+++
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireDependencyResolverTest.java
@@ -21,38 +21,38 @@ package org.apache.maven.plugin.surefire;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DefaultArtifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import
org.apache.maven.plugin.surefire.SurefireDependencyResolver.RuntimeArtifactFilter;
import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
import org.apache.maven.repository.RepositorySystem;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.mockito.ArgumentCaptor;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
+import org.powermock.api.mockito.PowerMockito;
import java.io.File;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
-import java.util.Map;
import java.util.Set;
-import static java.util.Arrays.asList;
import static java.util.Collections.singleton;
-import static
org.apache.maven.artifact.versioning.VersionRange.createFromVersion;
+import static java.util.Collections.singletonList;
import static
org.apache.maven.artifact.versioning.VersionRange.createFromVersionSpec;
import static
org.apache.maven.plugin.surefire.SurefireDependencyResolver.PROVIDER_GROUP_ID;
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.isNull;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.powermock.reflect.Whitebox.invokeMethod;
@@ -114,7 +114,7 @@ public class SurefireDependencyResolverTest
final Artifact provider = createArtifact( "surefire-junit-platform" );
RepositorySystem repositorySystem = mock( RepositorySystem.class );
final ArtifactResolutionResult expectedResult = mock(
ArtifactResolutionResult.class );
- when( repositorySystem.resolve( any( ArtifactResolutionRequest.class
) ) )
+ when( repositorySystem.resolve( any( ArtifactResolutionRequest.class )
) )
.then( new Answer<ArtifactResolutionResult>()
{
@Override
@@ -137,7 +137,9 @@ public class SurefireDependencyResolverTest
assertThat( request.getCache() )
.isNull();
assertThat( request.getCollectionFilter() )
- .isNull();
+ .isNotNull();
+ assertThat( request.getCollectionFilter() )
+ .isInstanceOf( RuntimeArtifactFilter.class );
assertThat( request.getManagedVersionMap() )
.isNull();
assertThat( request.getMirrors() )
@@ -182,8 +184,6 @@ public class SurefireDependencyResolverTest
providerArtifacts.add( ext );
providerArtifacts.add( logger );
- final String providerVersion = "5.3.1";
-
final ArtifactResolutionResult result = mock(
ArtifactResolutionResult.class );
when( result.getArtifacts() )
.thenReturn( providerArtifacts );
@@ -212,7 +212,9 @@ public class SurefireDependencyResolverTest
assertThat( request.getCache() )
.isNull();
assertThat( request.getCollectionFilter() )
- .isNull();
+ .isNotNull();
+ assertThat( request.getCollectionFilter() )
+ .isInstanceOf( RuntimeArtifactFilter.class );
assertThat( request.getManagedVersionMap() )
.isNull();
assertThat( request.getMirrors() )
@@ -237,15 +239,15 @@ public class SurefireDependencyResolverTest
.hasSize( 1 );
Dependency request = (Dependency) args[0];
assertThat( request.getGroupId() )
- .isEqualTo( "org.apache.maven.surefire" );
+ .isEqualTo( provider.getGroupId() );
assertThat( request.getArtifactId() )
- .isEqualTo( "surefire-junit-platform" );
+ .isEqualTo( provider.getArtifactId() );
assertThat( request.getVersion() )
- .isEqualTo( providerVersion );
+ .isEqualTo( provider.getVersion() );
assertThat( request.getType() )
- .isEqualTo( "jar" );
+ .isEqualTo( provider.getType() );
assertThat( request.getScope() )
- .isEqualTo( "test" );
+ .isNull();
return provider;
}
} );
@@ -258,7 +260,7 @@ public class SurefireDependencyResolverTest
when( log.isDebugEnabled() )
.thenReturn( true );
- Set<Artifact> classpath =
surefireDependencyResolver.getProviderClasspath( "surefire-junit-platform",
"5.3.1" );
+ Set<Artifact> classpath =
surefireDependencyResolver.getProviderClasspath( "surefire-junit-platform", "1"
);
assertThat( classpath )
.hasSize( 4 );
@@ -281,101 +283,84 @@ public class SurefireDependencyResolverTest
@Test
public void testAddProviderToClasspath() throws Exception
{
- final Artifact plugin = createArtifact( "maven-surefire-plugin" );
- final Artifact common = createArtifact( "maven-surefire-common" );
- final Artifact api = createArtifact( "surefire-api" );
- final Artifact provider = createArtifact( "surefire-junit-platform" );
- final Artifact ext = createArtifact( "org.apiguardian",
"apiguardian-api" );
- final Artifact logger = createArtifact( "surefire-logger-api" );
-
- Set<Artifact> pluginArtifacts = new LinkedHashSet<>();
- pluginArtifacts.add( plugin );
- pluginArtifacts.add( common );
- pluginArtifacts.add( api );
- pluginArtifacts.add( logger );
-
- ArtifactFactory artifactFactory = mock( ArtifactFactory.class );
- VersionRange pluginVersion = createFromVersion( "3.0.0" );
- when( artifactFactory.createDependencyArtifact( eq(
"org.apache.maven.surefire" ),
- eq( "maven-surefire-plugin" ),
- eq( pluginVersion ),
- eq( "jar" ),
- isNull( String.class ),
- eq( "compile" ) ) )
- .thenReturn( plugin );
-
- final ArtifactResolutionResult pluginResult = mock(
ArtifactResolutionResult.class );
- when( pluginResult.getArtifacts() )
- .thenReturn( pluginArtifacts );
-
- final ArtifactResolutionResult apiResult = mock(
ArtifactResolutionResult.class );
- when( apiResult.getArtifacts() )
- .thenReturn( singleton( api ) );
-
- final ArtifactResolutionResult loggerResult = mock(
ArtifactResolutionResult.class );
- when( loggerResult.getArtifacts() )
- .thenReturn( singleton( logger ) );
-
- final ArtifactResolutionResult extResult = mock(
ArtifactResolutionResult.class );
- when( extResult.getArtifacts() )
- .thenReturn( singleton( ext ) );
-
- final ArtifactResolutionResult providerResult = mock(
ArtifactResolutionResult.class );
- when( providerResult.getArtifacts() )
- .thenReturn( new HashSet<>( asList( provider, api, logger, ext
) ) );
+ Dependency providerAsDependency = new Dependency();
+ providerAsDependency.setGroupId( PROVIDER_GROUP_ID );
+ providerAsDependency.setArtifactId( "surefire-shadefire" );
+ providerAsDependency.setVersion( "1" );
- RepositorySystem repositorySystem = mock( RepositorySystem.class );
- when( repositorySystem.resolve( any( ArtifactResolutionRequest.class
) ) )
- .then( new Answer<ArtifactResolutionResult>()
- {
- @Override
- public ArtifactResolutionResult answer( InvocationOnMock
invocation )
- {
- Object[] args = invocation.getArguments();
- assertThat( args ).hasSize( 1 );
- ArtifactResolutionRequest request =
(ArtifactResolutionRequest) args[0];
- Artifact artifactToResolve = request.getArtifact();
- if ( artifactToResolve == plugin )
- {
- return pluginResult;
- }
- else if ( artifactToResolve == provider )
- {
- return providerResult;
- }
- else if ( artifactToResolve == api )
- {
- return apiResult;
- }
- else if ( artifactToResolve == logger )
- {
- return loggerResult;
- }
- else if ( artifactToResolve == ext )
- {
- return extResult;
- }
- throw new AssertionError( "what artifact are we going
to resolve? " + artifactToResolve );
- }
- } );
+ final Artifact providerAsArtifact = createArtifact(
"surefire-shadefire" );
+ PluginDescriptor pluginDescriptor = PowerMockito.mock(
PluginDescriptor.class );
+ Plugin p = PowerMockito.mock( Plugin.class );
+ when( pluginDescriptor.getPlugin() )
+ .thenReturn( p );
+ when( p.getDependencies() )
+ .thenReturn( singletonList( providerAsDependency ) );
+
+ RepositorySystem repositorySystem = mock( RepositorySystem.class );
SurefireDependencyResolver surefireDependencyResolver =
- new SurefireDependencyResolver( repositorySystem, null, null,
null, null, null, null );
+ new SurefireDependencyResolver( repositorySystem, null, null,
null, null, null, null );
- Map<String, Artifact> pluginArtifactsMapping = new HashMap<>();
- pluginArtifactsMapping.put( plugin.getGroupId() + ":" +
plugin.getArtifactId(), plugin );
- pluginArtifactsMapping.put( common.getGroupId() + ":" +
common.getArtifactId(), common );
- pluginArtifactsMapping.put( api.getGroupId() + ":" +
api.getArtifactId(), api );
- pluginArtifactsMapping.put( logger.getGroupId() + ":" +
logger.getArtifactId(), logger );
- pluginArtifactsMapping.put( provider.getGroupId() + ":" +
provider.getArtifactId(), provider );
- pluginArtifactsMapping.put( ext.getGroupId() + ":" +
ext.getArtifactId(), ext );
+ ArgumentCaptor<Dependency> dep = ArgumentCaptor.forClass(
Dependency.class );
+ when( repositorySystem.createDependencyArtifact( dep.capture() ) )
+ .thenReturn( providerAsArtifact );
- Set<Artifact> cp =
- surefireDependencyResolver.addProviderToClasspath(
pluginArtifactsMapping, plugin, api, logger );
+ final ArtifactResolutionResult resolutionResult = mock(
ArtifactResolutionResult.class );
+ when( resolutionResult.getArtifacts() )
+ .thenReturn( singleton( providerAsArtifact ) );
- assertThat( cp )
- .hasSize( 4 )
- .containsOnly( provider, api, logger, ext );
+ when( repositorySystem.resolve( any( ArtifactResolutionRequest.class )
) )
+ .then( new Answer<ArtifactResolutionResult>()
+ {
+ @Override
+ public ArtifactResolutionResult answer( InvocationOnMock
invocation )
+ {
+ Object[] args = invocation.getArguments();
+ assertThat( args )
+ .hasSize( 1 );
+ ArtifactResolutionRequest request =
(ArtifactResolutionRequest) args[0];
+ assertThat( request.getArtifact() )
+ .isSameAs( providerAsArtifact );
+ assertThat( request.isResolveTransitively() )
+ .isTrue();
+ assertThat( request.getArtifactDependencies() )
+ .isNull();
+ assertThat( request.getRemoteRepositories() )
+ .isNull();
+ assertThat( request.getLocalRepository() )
+ .isNull();
+ assertThat( request.getCache() )
+ .isNull();
+ assertThat( request.getCollectionFilter() )
+ .isNotNull();
+ assertThat( request.getCollectionFilter() )
+ .isInstanceOf( RuntimeArtifactFilter.class );
+ assertThat( request.getManagedVersionMap() )
+ .isNull();
+ assertThat( request.getMirrors() )
+ .isEmpty();
+ assertThat( request.getProxies() )
+ .isEmpty();
+ assertThat( request.getResolutionFilter() )
+ .isNull();
+ assertThat( request.getServers() )
+ .isEmpty();
+ return resolutionResult;
+ }
+ } );
+
+ Set<Artifact> providers = surefireDependencyResolver.resolveProvider(
pluginDescriptor );
+
+ verify( repositorySystem, times( 1 ) )
+ .createDependencyArtifact( any( Dependency.class ) );
+
+ assertThat( providers )
+ .hasSize( 1 )
+ .containsOnly( providerAsArtifact );
+
+ assertThat( dep.getValue().getGroupId() ).isEqualTo( PROVIDER_GROUP_ID
);
+ assertThat( dep.getValue().getArtifactId() ).isEqualTo(
"surefire-shadefire" );
+ assertThat( dep.getValue().getVersion() ).isEqualTo( "1" );
}
@Test
@@ -424,7 +409,6 @@ public class SurefireDependencyResolverTest
return createArtifact( PROVIDER_GROUP_ID, artifactId );
}
-
private static Artifact createArtifact( String groupId, String artifactId )
throws InvalidVersionSpecificationException
{