You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2019/09/11 19:42:11 UTC
[maven-dependency-plugin] 08/08: Replace CapturingLog class with
Mockito usage
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git
commit 9eb19876491c3f9c069b8acacabdad4a49a0f940
Author: Maarten Mulders <ma...@infosupport.com>
AuthorDate: Mon Sep 9 07:29:57 2019 +0200
Replace CapturingLog class with Mockito usage
---
pom.xml | 6 +
.../maven/plugins/dependency/CapturingLog.java | 179 ---------------------
.../apache/maven/plugins/dependency/TestSkip.java | 12 +-
.../ExcludeReactorProjectsArtifactFilterTest.java | 21 ++-
4 files changed, 33 insertions(+), 185 deletions(-)
diff --git a/pom.xml b/pom.xml
index c6e5fca..35c1ac5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -282,6 +282,12 @@ under the License.
<version>${pluginTestingVersion}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>2.28.2</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
diff --git a/src/test/java/org/apache/maven/plugins/dependency/CapturingLog.java b/src/test/java/org/apache/maven/plugins/dependency/CapturingLog.java
deleted file mode 100644
index 4506823..0000000
--- a/src/test/java/org/apache/maven/plugins/dependency/CapturingLog.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.apache.maven.plugins.dependency;
-
-/*
- * 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 org.apache.maven.plugin.logging.Log;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-/** Helper to do assertions on what is being logged. */
-public class CapturingLog
- implements Log
-{
- StringBuilder sb = new StringBuilder();
-
- /** {@inheritDoc} */
- public void debug( CharSequence content )
- {
- print( "debug", content );
- }
-
- /** {@inheritDoc} */
- public void debug( CharSequence content, Throwable error )
- {
- print( "debug", content, error );
- }
-
- /** {@inheritDoc} */
- public void debug( Throwable error )
- {
- print( "debug", error );
- }
-
- /** {@inheritDoc} */
- public void info( CharSequence content )
- {
- print( "info", content );
- }
-
- /** {@inheritDoc} */
- public void info( CharSequence content, Throwable error )
- {
- print( "info", content, error );
- }
-
- /** {@inheritDoc} */
- public void info( Throwable error )
- {
- print( "info", error );
- }
-
- /** {@inheritDoc} */
- public void warn( CharSequence content )
- {
- print( "warn", content );
- }
-
- /** {@inheritDoc} */
- public void warn( CharSequence content, Throwable error )
- {
- print( "warn", content, error );
- }
-
- /** {@inheritDoc} */
- public void warn( Throwable error )
- {
- print( "warn", error );
- }
-
- /** {@inheritDoc} */
- public void error( CharSequence content )
- {
- System.err.println( "[error] " + content.toString() );
- }
-
- /** {@inheritDoc} */
- public void error( CharSequence content, Throwable error )
- {
- StringWriter sWriter = new StringWriter();
- PrintWriter pWriter = new PrintWriter( sWriter );
-
- error.printStackTrace( pWriter );
-
- System.err.println( "[error] " + content.toString() + System.lineSeparator() + System.lineSeparator() + sWriter.toString() );
- }
-
- /**
- * @see Log#error(Throwable)
- */
- public void error( Throwable error )
- {
- StringWriter sWriter = new StringWriter();
- PrintWriter pWriter = new PrintWriter( sWriter );
-
- error.printStackTrace( pWriter );
-
- System.err.println( "[error] " + sWriter.toString() );
- }
-
- /**
- * @see Log#isDebugEnabled()
- */
- public boolean isDebugEnabled()
- {
- // TODO: Not sure how best to set these for this implementation...
- return true;
- }
-
- /**
- * @see Log#isInfoEnabled()
- */
- public boolean isInfoEnabled()
- {
- return true;
- }
-
- /**
- * @see Log#isWarnEnabled()
- */
- public boolean isWarnEnabled()
- {
- return true;
- }
-
- /**
- * @see Log#isErrorEnabled()
- */
- public boolean isErrorEnabled()
- {
- return true;
- }
-
- private void print( String prefix, CharSequence content )
- {
- sb.append( "[" ).append( prefix ).append( "] " ).append( content.toString() ).append( System.lineSeparator() );
- }
-
- private void print( String prefix, Throwable error )
- {
- StringWriter sWriter = new StringWriter();
- PrintWriter pWriter = new PrintWriter( sWriter );
-
- error.printStackTrace( pWriter );
-
- sb.append( "[" ).append( prefix ).append( "] " ).append( sWriter.toString() ).append( System.lineSeparator() );
- }
-
- private void print( String prefix, CharSequence content, Throwable error )
- {
- StringWriter sWriter = new StringWriter();
- PrintWriter pWriter = new PrintWriter( sWriter );
-
- error.printStackTrace( pWriter );
-
- sb.append( "[" ).append( prefix ).append( "] " ).append( content.toString() ).append( System.lineSeparator() ).append( System.lineSeparator() ).append( sWriter.toString() ).append( System.lineSeparator() );
- }
-
- public String getContent()
- {
- return sb.toString();
- }
-}
diff --git a/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java b/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java
index 54e3d3d..b681f0c 100644
--- a/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java
+++ b/src/test/java/org/apache/maven/plugins/dependency/TestSkip.java
@@ -1,9 +1,15 @@
package org.apache.maven.plugins.dependency;
import org.apache.maven.plugin.Mojo;
+import org.apache.maven.plugin.logging.Log;
+import org.mockito.ArgumentCaptor;
import java.io.File;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -158,11 +164,13 @@ public class TestSkip
File testPom = new File( getBasedir(), "target/test-classes/unit/skip-test/" + configFile );
Mojo mojo = lookupMojo( mojoName, testPom );
assertNotNull( mojo );
- CapturingLog log = new CapturingLog();
+ Log log = mock( Log.class );
mojo.setLog( log );
mojo.execute();
- assertTrue( log.getContent().contains( "Skipping plugin execution" ) );
+ ArgumentCaptor<String> captor = ArgumentCaptor.forClass( String.class );
+ verify( log, atLeastOnce() ).info( captor.capture() );
+ assertTrue( captor.getValue().contains( "Skipping plugin execution" ) );
}
}
diff --git a/src/test/java/org/apache/maven/plugins/dependency/resolvers/ExcludeReactorProjectsArtifactFilterTest.java b/src/test/java/org/apache/maven/plugins/dependency/resolvers/ExcludeReactorProjectsArtifactFilterTest.java
index 8d83f55..c6de09b 100644
--- a/src/test/java/org/apache/maven/plugins/dependency/resolvers/ExcludeReactorProjectsArtifactFilterTest.java
+++ b/src/test/java/org/apache/maven/plugins/dependency/resolvers/ExcludeReactorProjectsArtifactFilterTest.java
@@ -20,18 +20,24 @@ package org.apache.maven.plugins.dependency.resolvers;
*/
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugin.testing.stubs.ArtifactStub;
import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
-import org.apache.maven.plugins.dependency.CapturingLog;
import org.apache.maven.project.MavenProject;
import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException;
+import org.mockito.ArgumentCaptor;
import java.util.HashSet;
import java.util.Set;
import static java.util.Collections.singleton;
import static java.util.Collections.singletonList;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
public class ExcludeReactorProjectsArtifactFilterTest
extends AbstractDependencyMojoTestCase
@@ -54,16 +60,19 @@ public class ExcludeReactorProjectsArtifactFilterTest
artifacts.add( artifact1 );
artifacts.add( artifact2 );
- CapturingLog log = new CapturingLog();
MavenProject project = new MavenProjectStub();
project.setArtifact(artifact1);
+ Log log = mock( Log.class );
+ when( log.isDebugEnabled() ).thenReturn( false );
+
ExcludeReactorProjectsArtifactFilter filter = new ExcludeReactorProjectsArtifactFilter(
singletonList( project ), log );
Set<Artifact> result = filter.filter( artifacts );
assertEquals( 1, result.size() );
+ verify( log, never() ).debug( any( String.class ) );
}
public void testFilterWithLogging()
@@ -74,15 +83,19 @@ public class ExcludeReactorProjectsArtifactFilterTest
artifact.setArtifactId("maven-dependency-plugin-dummy");
artifact.setVersion("1.0");
- CapturingLog log = new CapturingLog();
MavenProject project = new MavenProjectStub();
project.setArtifact(artifact);
+ Log log = mock( Log.class );
+ when( log.isDebugEnabled() ).thenReturn( true );
+
ExcludeReactorProjectsArtifactFilter filter = new ExcludeReactorProjectsArtifactFilter(
singletonList( project ), log );
filter.filter( singleton( artifact ) );
- assertTrue( log.getContent().contains( "Skipped artifact" ) );
+ ArgumentCaptor<String> captor = ArgumentCaptor.forClass( String.class );
+ verify( log ).debug( captor.capture() );
+ assertTrue( captor.getValue().contains( "Skipped artifact" ) );
}
}