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
     {

Reply via email to