You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/06/06 18:41:32 UTC

[maven-invoker-plugin] branch t1 updated (db28e86 -> 326030d)

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a change to branch t1
in repository https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git.


 discard db28e86  improve InvokerPropertiesTest
     add 560123c  [MINVOKER-254] Remove redundant profile - Java 7 is prerequisite now
     add d63c7f0  Upgrade maven-reporting-impl from 2.4 to 3.0.0
     new 326030d  improve InvokerPropertiesTest

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (db28e86)
            \
             N -- N -- N   refs/heads/t1 (326030d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 pom.xml | 54 +++---------------------------------------------------
 1 file changed, 3 insertions(+), 51 deletions(-)


[maven-invoker-plugin] 01/01: improve InvokerPropertiesTest

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch t1
in repository https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git

commit 326030db9e884495cac414288b8809fc615025b3
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Mon Feb 17 18:38:20 2020 +0100

    improve InvokerPropertiesTest
---
 .../plugins/invoker/InvokerPropertiesTest.java     | 300 ++++++++++++++-------
 1 file changed, 197 insertions(+), 103 deletions(-)

diff --git a/src/test/java/org/apache/maven/plugins/invoker/InvokerPropertiesTest.java b/src/test/java/org/apache/maven/plugins/invoker/InvokerPropertiesTest.java
index a492168..784a7f4 100644
--- a/src/test/java/org/apache/maven/plugins/invoker/InvokerPropertiesTest.java
+++ b/src/test/java/org/apache/maven/plugins/invoker/InvokerPropertiesTest.java
@@ -21,33 +21,50 @@ package org.apache.maven.plugins.invoker;
 
 import java.io.File;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Properties;
 
-import org.apache.maven.shared.invoker.DefaultInvocationRequest;
 import org.apache.maven.shared.invoker.InvocationRequest;
 import org.apache.maven.shared.invoker.InvocationRequest.ReactorFailureBehavior;
-
-import junit.framework.TestCase;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.clearInvocations;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
 
 /**
  * Tests the invoker properties facade.
  *
  * @author Benjamin Bentmann
  */
+@RunWith( MockitoJUnitRunner.class )
 public class InvokerPropertiesTest
-    extends TestCase
 {
 
+    @Mock
+    private InvocationRequest request;
+
+    @Test
     public void testConstructorNullSafe()
-        throws Exception
     {
         InvokerProperties facade = new InvokerProperties( null );
         assertNotNull( facade.getProperties() );
     }
 
+    @Test
     public void testGetInvokerProperty()
-        throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
@@ -62,8 +79,8 @@ public class InvokerPropertiesTest
         assertEquals( "value", facade.get( "key", 2 ) );
     }
 
+    @Test
     public void testGetJobName()
-        throws Exception
     {
         Properties props = new Properties();
         final String jobName = "Build Job name";
@@ -73,8 +90,8 @@ public class InvokerPropertiesTest
         assertEquals( jobName, facade.getJobName() );
     }
 
-    public void testIsExpectedResult()
-        throws Exception
+    @Test
+    public void testIsExpectedResult() throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
@@ -91,179 +108,208 @@ public class InvokerPropertiesTest
         assertTrue( facade.isExpectedResult( 1, 0 ) );
     }
 
-    public void testConfigureRequestGoals()
-        throws Exception
+    @Test
+    public void testConfigureRequestEmptyProperties()
     {
-        Properties props = new Properties();
-        InvokerProperties facade = new InvokerProperties( props );
 
-        InvocationRequest request = new DefaultInvocationRequest();
+        InvokerProperties facade = new InvokerProperties( null );
 
-        request.setGoals( Collections.singletonList( "test" ) );
         facade.configureInvocation( request, 0 );
-        assertEquals( Collections.singletonList( "test" ), request.getGoals() );
+        verifyZeroInteractions( request );
+    }
+
+    @Test
+    public void testConfigureRequestGoals() throws Exception
+    {
+        Properties props = new Properties();
+        InvokerProperties facade = new InvokerProperties( props );
 
         props.setProperty( "invoker.goals", "verify" );
         facade.configureInvocation( request, 0 );
-        assertEquals( Collections.singletonList( "verify" ), request.getGoals() );
+        verify( request ).setGoals( eq( Collections.singletonList( "verify" ) ) );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
         props.setProperty( "invoker.goals", "   " );
         facade.configureInvocation( request, 0 );
-        assertEquals( Arrays.asList( new String[0] ), request.getGoals() );
+        verify( request ).setGoals( eq( Collections.<String>emptyList() ) );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
-        props.setProperty( "invoker.goals", "  clean , test   verify  " );
+        props.setProperty( "invoker.goals", "" );
         facade.configureInvocation( request, 0 );
-        assertEquals( Arrays.asList( new String[] { "clean", "test", "verify" } ), request.getGoals() );
+        verify( request ).setGoals( eq( Collections.<String>emptyList() ) );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
-        props.setProperty( "invoker.goals", "" );
+        props.setProperty( "invoker.goals", "  clean , test   verify " );
         facade.configureInvocation( request, 0 );
-        assertEquals( Arrays.asList( new String[0] ), request.getGoals() );
+        verify( request ).setGoals( eq( Arrays.asList( "clean", "test", "verify" ) ) );
+        verifyNoMoreInteractions( request );
     }
 
-    public void testConfigureRequestProfiles()
-        throws Exception
+    @Test
+    public void testConfigureRequestProfiles() throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
 
-        InvocationRequest request = new DefaultInvocationRequest();
-
-        request.setProfiles( Collections.singletonList( "test" ) );
-        facade.configureInvocation( request, 0 );
-        assertEquals( Collections.singletonList( "test" ), request.getProfiles() );
-
         props.setProperty( "invoker.profiles", "verify" );
         facade.configureInvocation( request, 0 );
-        assertEquals( Collections.singletonList( "verify" ), request.getProfiles() );
+        verify( request ).setProfiles( eq( Collections.singletonList( "verify" ) ) );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
         props.setProperty( "invoker.profiles", "   " );
         facade.configureInvocation( request, 0 );
-        assertEquals( Arrays.asList( new String[0] ), request.getProfiles() );
+        verify( request ).setProfiles( eq( Collections.<String>emptyList() ) );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
-        props.setProperty( "invoker.profiles", "  clean , test   verify  ," );
+        props.setProperty( "invoker.profiles", "" );
         facade.configureInvocation( request, 0 );
-        assertEquals( Arrays.asList( new String[] { "clean", "test", "verify" } ), request.getProfiles() );
+        verify( request ).setProfiles( eq( Collections.<String>emptyList() ) );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
-        props.setProperty( "invoker.profiles", "" );
+        props.setProperty( "invoker.profiles", "  clean , test   verify  ," );
         facade.configureInvocation( request, 0 );
-        assertEquals( Arrays.asList( new String[0] ), request.getProfiles() );
+        verify( request ).setProfiles( eq( Arrays.asList( "clean", "test", "verify" ) ) );
+        verifyNoMoreInteractions( request );
     }
 
-    public void testConfigureRequestProject()
-        throws Exception
+    @Test
+    public void testConfigureRequestProject() throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
 
-        InvocationRequest request = new DefaultInvocationRequest();
-
         File tempPom = File.createTempFile( "maven-invoker-plugin-test", ".pom" );
-        File tempDir = tempPom.getParentFile();
-
-        request.setBaseDirectory( tempDir );
-        facade.configureInvocation( request, 0 );
-        assertEquals( tempDir, request.getBaseDirectory() );
-        assertEquals( null, request.getPomFile() );
-
-        props.setProperty( "invoker.project", tempPom.getName() );
-        request.setBaseDirectory( tempDir );
-        facade.configureInvocation( request, 0 );
-        assertEquals( tempDir, request.getBaseDirectory() );
-        assertEquals( tempPom, request.getPomFile() );
-
-        props.setProperty( "invoker.project", "" );
-        request.setBaseDirectory( tempDir );
-        facade.configureInvocation( request, 0 );
-        assertEquals( tempDir, request.getBaseDirectory() );
-        assertEquals( null, request.getPomFile() );
-
-        tempPom.delete();
+        try
+        {
+            File tempDir = tempPom.getParentFile();
+            when( request.getBaseDirectory() ).thenReturn( tempDir );
+
+            props.setProperty( "invoker.project", tempPom.getName() );
+            facade.configureInvocation( request, 0 );
+            verify( request ).getBaseDirectory();
+            verify( request ).setBaseDirectory( eq( tempDir ) );
+            verify( request ).setPomFile( eq( tempPom ) );
+            verifyNoMoreInteractions( request );
+            clearInvocations( request );
+
+            props.setProperty( "invoker.project", "" );
+            facade.configureInvocation( request, 0 );
+            verify( request ).getBaseDirectory();
+            verify( request ).setBaseDirectory( eq( tempDir ) );
+            verify( request ).setPomFile( null );
+            verifyNoMoreInteractions( request );
+        }
+        finally
+        {
+            tempPom.delete();
+        }
     }
 
+    @Test
     public void testConfigureRequestMavenOpts()
-        throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
 
-        InvocationRequest request = new DefaultInvocationRequest();
-
-        request.setMavenOpts( "default" );
-        facade.configureInvocation( request, 0 );
-        assertEquals( "default", request.getMavenOpts() );
-
         props.setProperty( "invoker.mavenOpts", "-Xmx512m" );
         facade.configureInvocation( request, 0 );
-        assertEquals( "-Xmx512m", request.getMavenOpts() );
+        verify( request ).setMavenOpts( "-Xmx512m" );
+        verifyNoMoreInteractions( request );
     }
 
-    public void testConfigureRequestFailureBehavior()
-        throws Exception
+    @Test
+    public void testConfigureRequestFailureBehavior() throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
 
-        InvocationRequest request = new DefaultInvocationRequest();
-
-        request.setReactorFailureBehavior( ReactorFailureBehavior.FailAtEnd );
-        facade.configureInvocation( request, 0 );
-        assertEquals( ReactorFailureBehavior.FailAtEnd, request.getReactorFailureBehavior() );
-
         props.setProperty( "invoker.failureBehavior", ReactorFailureBehavior.FailNever.getLongOption() );
         facade.configureInvocation( request, 0 );
-        assertEquals( "fail-never", request.getReactorFailureBehavior().getLongOption() );
+        verify( request ).setReactorFailureBehavior( eq( ReactorFailureBehavior.FailNever ) );
+        verifyNoMoreInteractions( request );
     }
 
-    public void testConfigureRequestRecursion()
-        throws Exception
+    @Test
+    public void testConfigureRequestFailureBehaviorUnKnownName() throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
 
-        InvocationRequest request = new DefaultInvocationRequest();
+        props.setProperty( "invoker.failureBehavior", "xxxUnKnown" );
+        try
+        {
+            facade.configureInvocation( request, 0 );
+        }
+        catch ( IllegalArgumentException e )
+        {
+            assertEquals( "The string 'xxxUnKnown' can not be converted to enumeration.", e.getMessage() );
+        }
+        verifyZeroInteractions( request );
+    }
 
-        request.setRecursive( true );
-        facade.configureInvocation( request, 0 );
-        assertTrue( request.isRecursive() );
-        request.setRecursive( false );
-        facade.configureInvocation( request, 0 );
-        assertFalse( request.isRecursive() );
+
+    @Test
+    public void testConfigureRequestRecursion() throws Exception
+    {
+        Properties props = new Properties();
+        InvokerProperties facade = new InvokerProperties( props );
 
         props.setProperty( "invoker.nonRecursive", "true" );
         facade.configureInvocation( request, 0 );
-        assertFalse( request.isRecursive() );
+        verify( request ).setRecursive( false );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
         props.setProperty( "invoker.nonRecursive", "false" );
         facade.configureInvocation( request, 0 );
-        assertTrue( request.isRecursive() );
+        verify( request ).setRecursive( true );
+        verifyNoMoreInteractions( request );
     }
 
-    public void testConfigureRequestOffline()
-        throws Exception
+    @Test
+    public void testConfigureRequestOffline() throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
 
-        InvocationRequest request = new DefaultInvocationRequest();
-
-        request.setOffline( true );
+        props.setProperty( "invoker.offline", "true" );
         facade.configureInvocation( request, 0 );
-        assertTrue( request.isOffline() );
-        request.setOffline( false );
+        verify( request ).setOffline( true );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
+
+        props.setProperty( "invoker.offline", "false" );
         facade.configureInvocation( request, 0 );
-        assertFalse( request.isOffline() );
+        verify( request ).setOffline( false );
+        verifyNoMoreInteractions( request );
+    }
 
-        props.setProperty( "invoker.offline", "true" );
+    @Test
+    public void testConfigureRequestDebug() throws Exception
+    {
+        Properties props = new Properties();
+        InvokerProperties facade = new InvokerProperties( props );
+
+        props.setProperty( "invoker.debug", "true" );
         facade.configureInvocation( request, 0 );
-        assertTrue( request.isOffline() );
+        verify( request ).setDebug( true );
+        verifyNoMoreInteractions( request );
+        clearInvocations( request );
 
-        props.setProperty( "invoker.offline", "false" );
+        props.setProperty( "invoker.debug", "false" );
         facade.configureInvocation( request, 0 );
-        assertFalse( request.isOffline() );
+        verify( request ).setDebug( false );
+        verifyNoMoreInteractions( request );
     }
 
-    public void testIsInvocationDefined()
-        throws Exception
+    @Test
+    public void testIsInvocationDefined() throws Exception
     {
         Properties props = new Properties();
         InvokerProperties facade = new InvokerProperties( props );
@@ -284,7 +330,8 @@ public class InvokerPropertiesTest
         assertTrue( facade.isInvocationDefined( 3 ) );
         assertFalse( facade.isInvocationDefined( 4 ) );
     }
-    
+
+    @Test
     public void testIsSelectedDefined()
     {
         Properties props = new Properties();
@@ -306,4 +353,51 @@ public class InvokerPropertiesTest
         assertTrue( facade.isSelectorDefined( 4 ) );
         assertFalse( facade.isSelectorDefined( 5 ) );
     }
+
+    @Test
+    public void testGetToolchainsForEmptyProperties()
+    {
+
+        Properties props = new Properties();
+        InvokerProperties facade = new InvokerProperties( props );
+
+        Collection<InvokerToolchain> toolchains = facade.getToolchains();
+        assertNotNull( toolchains );
+        assertEquals( 0, toolchains.size() );
+
+        toolchains = facade.getToolchains( 1 );
+        assertNotNull( toolchains );
+        assertEquals( 0, toolchains.size() );
+    }
+
+    @Test
+    public void testGetToolchains()
+    {
+        Properties props = new Properties();
+        props.put( "invoker.toolchain.jdk.version", "11" );
+        InvokerProperties facade = new InvokerProperties( props );
+
+        Collection<InvokerToolchain> toolchains = facade.getToolchains();
+        assertNotNull( toolchains );
+        assertEquals( 1, toolchains.size() );
+        InvokerToolchain toolchain = toolchains.iterator().next();
+        assertEquals( "jdk", toolchain.getType() );
+        assertEquals( Collections.singletonMap( "version", "11" ), toolchain.getProvides() );
+    }
+
+    @Test
+    public void testGetToolchainsWithIndex()
+    {
+        Properties props = new Properties();
+        props.put( "selector.1.invoker.toolchain.jdk.version", "11" );
+        InvokerProperties facade = new InvokerProperties( props );
+
+        Collection<InvokerToolchain> toolchains = facade.getToolchains( 1 );
+        assertNotNull( toolchains );
+        assertEquals( 1, toolchains.size() );
+        InvokerToolchain toolchain = toolchains.iterator().next();
+        assertEquals( "jdk", toolchain.getType() );
+        assertEquals( Collections.singletonMap( "version", "11" ), toolchain.getProvides() );
+    }
+
 }