You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2019/05/15 01:36:03 UTC
[maven-surefire] 04/04: the last unit tests
This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a commit to branch 1546-1222
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 9fcbf58bcb9f51799931ccd631371f7829815099
Author: tibordigana <ti...@apache.org>
AuthorDate: Wed May 15 03:35:38 2019 +0200
the last unit tests
---
.../maven/plugin/surefire/MojoMocklessTest.java | 49 ++++++++++++++++++++++
.../plugin/surefire/SurefireReflectorTest.java | 2 +-
.../org/apache/maven/surefire/JUnit4SuiteTest.java | 2 +
.../maven/surefire/booter/SurefireReflector.java | 5 ---
.../surefire/booter/SurefireReflectorTest.java | 30 ++++++++++++-
5 files changed, 81 insertions(+), 7 deletions(-)
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java
index ed846aa..3e3237a 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/MojoMocklessTest.java
@@ -25,6 +25,9 @@ import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.handler.DefaultArtifactHandler;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.surefire.extensions.DefaultConsoleOutputReporter;
+import org.apache.maven.plugin.surefire.extensions.DefaultStatelessReporter;
+import org.apache.maven.plugin.surefire.extensions.DefaultStatelessTestsetInfoReporter;
import org.apache.maven.surefire.suite.RunResult;
import org.apache.maven.surefire.util.DefaultScanResult;
import org.apache.maven.toolchain.Toolchain;
@@ -40,11 +43,57 @@ import static java.util.Arrays.asList;
import static java.util.Collections.singletonList;
import static org.fest.assertions.Assertions.assertThat;
import static org.junit.Assert.fail;
+import static org.powermock.reflect.Whitebox.invokeMethod;
import static org.powermock.reflect.Whitebox.setInternalState;
public class MojoMocklessTest
{
@Test
+ public void testGetStartupReportConfiguration() throws Exception
+ {
+ AbstractSurefireMojo surefirePlugin = new Mojo( null, null );
+ StartupReportConfiguration config = invokeMethod( surefirePlugin, "getStartupReportConfiguration", "", false );
+
+ assertThat( config.getXmlReporter() )
+ .isNotNull()
+ .isInstanceOf( DefaultStatelessReporter.class );
+
+ assertThat( config.getConsoleOutputReporter() )
+ .isNotNull()
+ .isInstanceOf( DefaultConsoleOutputReporter.class );
+
+ assertThat( config.getTestsetReporter() )
+ .isNotNull()
+ .isInstanceOf( DefaultStatelessTestsetInfoReporter.class );
+ }
+
+ @Test
+ public void testGetStartupReportConfiguration2() throws Exception
+ {
+ AbstractSurefireMojo surefirePlugin = new Mojo( null, null );
+ DefaultStatelessReporter xmlReporter = new DefaultStatelessReporter( false, "3.0" );
+ DefaultConsoleOutputReporter consoleReporter = new DefaultConsoleOutputReporter();
+ DefaultStatelessTestsetInfoReporter testsetInfoReporter = new DefaultStatelessTestsetInfoReporter();
+ setInternalState( surefirePlugin, "statelessReporter", xmlReporter );
+ setInternalState( surefirePlugin, "consoleOutputReporter", consoleReporter );
+ setInternalState( surefirePlugin, "statelessTestsetInfoReporter", testsetInfoReporter );
+
+ StartupReportConfiguration config = invokeMethod( surefirePlugin, "getStartupReportConfiguration", "", false );
+
+ assertThat( config.getXmlReporter() )
+ .isNotNull()
+ .isSameAs( xmlReporter );
+
+ assertThat( config.getConsoleOutputReporter() )
+ .isNotNull()
+ .isSameAs( consoleReporter );
+
+ assertThat( config.getTestsetReporter() )
+ .isNotNull()
+ .isSameAs( testsetInfoReporter );
+ }
+
+ @Test
public void testForkMode()
{
AbstractSurefireMojo surefirePlugin = new Mojo( null, null );
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireReflectorTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireReflectorTest.java
index a7c8b9d..2d5cfee 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireReflectorTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/SurefireReflectorTest.java
@@ -1 +1 @@
-package org.apache.maven.plugin.surefire;
/*
* 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.surefire.log.api.ConsoleLogger;
import org.apache.maven.plugin.surefire.log.api.ConsoleLoggerDecorator;
import o
rg.apache.maven.plugin.surefire.log.api.PrintStreamLogger;
import org.apache.maven.surefire.booter.IsolatedClassLoader;
import org.apache.maven.surefire.booter.SurefireReflector;
import org.junit.Before;
import org.junit.Test;
import static org.apache.maven.surefire.util.ReflectionUtils.getMethod;
import static org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.CoreMatchers.sameInstance;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
/**
* @author <a href="mailto:tibordigana@apache.org">Tibor Digana (tibor17)</a>
* @see ConsoleLogger
* @see SurefireReflector
* @since 2.20
*/
public class SurefireReflectorTest
{
private ConsoleLogger logger;
private SurefireReflector reflector;
@Before
public void prepareData()
{
logger = spy( new PrintStreamLogger( System.out ) );
ClassLoader cl = new IsolatedClassLoader( Thread.currentThread().getContextClassLoader(), false, "role" );
reflector = new SurefireReflector( cl );
}
@Test
public void shouldProxyConsoleLogger()
{
Object mirror = reflector.createConsoleLogger( logger );
assertThat( mirror, is( notNullValue() ) );
assertThat( mirror.getClass().getInterfaces()[0].getName(), is( ConsoleLogger.class.getName() ) );
assertThat( mirror, is( not( sameInstance( (Object) logger ) ) ) );
assertThat( mirror, is( instanceOf( ConsoleLoggerDecorator.class ) ) );
invokeMethodWithArray( mirror, getMethod( mirror, "info", String.class ), "Hi There!" );
verify( logger, times( 1 ) ).info( "Hi There!" );
}
}
\ No newline at end of file
+package org.apache.maven.plugin.surefire;
/*
* 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.surefire.log.api.ConsoleLogger;
import org.apache.maven.plugin.surefire.log.api.ConsoleLoggerDecorator;
import o
rg.apache.maven.plugin.surefire.log.api.PrintStreamLogger;
import org.apache.maven.surefire.booter.IsolatedClassLoader;
import org.apache.maven.surefire.booter.SurefireReflector;
import org.junit.Before;
import org.junit.Test;
import static org.apache.maven.surefire.util.ReflectionUtils.getMethod;
import static org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.CoreMatchers.sameInstance;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
/**
* @author <a href="mailto:tibordigana@apache.org">Tibor Digana (tibor17)</a>
* @see ConsoleLogger
* @see SurefireReflector
* @since 2.20
*/
public class SurefireReflectorTest
{
private ConsoleLogger logger;
private ClassLoader cl;
@Before
public void prepareData()
{
logger = spy( new PrintStreamLogger( System.out ) );
cl = new IsolatedClassLoader( Thread.currentThread().getContextClassLoader(), false, "role" );
}
@Test
public void shouldProxyConsoleLogger()
{
Object mirror = SurefireReflector.createConsoleLogger( logger, cl );
assertThat( mirror, is( notNullValue() ) );
assertThat( mirror.getClass().getInterfaces()[0].getName(), is( ConsoleLogger.class.getName() ) );
assertThat( mirror, is( not( sameInstance( (Object) logger ) ) ) );
assertThat( mirror, is( instanceOf( ConsoleLoggerDecorator.class ) ) );
invokeMethodWithArray( mirror, getMethod( mirror, "info", String.class ), "Hi There!" );
verify( logger, times( 1 ) ).info( "Hi There!" );
}
}
\ No newline at end of file
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/surefire/JUnit4SuiteTest.java b/maven-surefire-common/src/test/java/org/apache/maven/surefire/JUnit4SuiteTest.java
index 2d0bca5..d28a89c 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/surefire/JUnit4SuiteTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/surefire/JUnit4SuiteTest.java
@@ -25,6 +25,7 @@ import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.maven.plugin.surefire.AbstractSurefireMojoJava7PlusTest;
import org.apache.maven.plugin.surefire.AbstractSurefireMojoTest;
+import org.apache.maven.plugin.surefire.CommonReflectorTest;
import org.apache.maven.plugin.surefire.MojoMocklessTest;
import org.apache.maven.plugin.surefire.SurefireHelperTest;
import org.apache.maven.plugin.surefire.SurefireReflectorTest;
@@ -102,6 +103,7 @@ public class JUnit4SuiteTest extends TestCase
suite.addTest( new JUnit4TestAdapter( StatelessReporterTest.class ) );
suite.addTest( new JUnit4TestAdapter( TestSetStatsTest.class ) );
suite.addTest( new JUnit4TestAdapter( StatelessTestsetInfoReporterTest.class ) );
+ suite.addTest( new JUnit4TestAdapter( CommonReflectorTest.class ) );
return suite;
}
}
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java b/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java
index cff0cb0..02990f1 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java
@@ -376,11 +376,6 @@ public class SurefireReflector
return runResult.isAssignableFrom( o.getClass() );
}
- public Object createConsoleLogger( @Nonnull ConsoleLogger consoleLogger )
- {
- return createConsoleLogger( consoleLogger, surefireClassLoader );
- }
-
private static Collection<Integer> toOrdinals( Collection<? extends Enum> enums )
{
Collection<Integer> ordinals = new ArrayList<>( enums.size() );
diff --git a/surefire-api/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java b/surefire-api/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java
index facf51b..cbd2d16 100644
--- a/surefire-api/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java
+++ b/surefire-api/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java
@@ -19,6 +19,7 @@ package org.apache.maven.surefire.booter;
*/
import junit.framework.TestCase;
+import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
import org.apache.maven.surefire.report.ReporterConfiguration;
import org.apache.maven.surefire.report.ReporterFactory;
import org.apache.maven.surefire.report.RunListener;
@@ -29,6 +30,7 @@ import org.apache.maven.surefire.testset.TestArtifactInfo;
import org.apache.maven.surefire.testset.TestListResolver;
import org.apache.maven.surefire.testset.TestRequest;
import org.apache.maven.surefire.util.RunOrder;
+import org.mockito.ArgumentCaptor;
import java.io.File;
import java.lang.reflect.Method;
@@ -36,9 +38,35 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import static org.fest.assertions.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
public class SurefireReflectorTest
extends TestCase
{
+ public void testCreateConsoleLogger()
+ {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ ConsoleLogger consoleLogger = mock( ConsoleLogger.class );
+ ConsoleLogger decorator = (ConsoleLogger) SurefireReflector.createConsoleLogger( consoleLogger, cl );
+ assertThat( decorator )
+ .isNotSameAs( consoleLogger );
+
+ assertThat( decorator.isDebugEnabled() ).isFalse();
+ when( consoleLogger.isDebugEnabled() ).thenReturn( true );
+ assertThat( decorator.isDebugEnabled() ).isTrue();
+ verify( consoleLogger, times( 2 ) ).isDebugEnabled();
+
+ decorator.info( "msg" );
+ ArgumentCaptor<String> argumentMsg = ArgumentCaptor.forClass( String.class );
+ verify( consoleLogger, times( 1 ) ).info( argumentMsg.capture() );
+ assertThat( argumentMsg.getAllValues() ).hasSize( 1 );
+ assertThat( argumentMsg.getAllValues().get( 0 ) ).isEqualTo( "msg" );
+ }
+
public void testShouldCreateFactoryWithoutException()
{
ReporterFactory factory = new ReporterFactory()
@@ -62,6 +90,7 @@ public class SurefireReflectorTest
assertNotNull( baseProviderFactory.getReporterFactory() );
assertSame( factory, baseProviderFactory.getReporterFactory() );
}
+
public void testSetDirectoryScannerParameters()
{
SurefireReflector surefireReflector = getReflector();
@@ -72,7 +101,6 @@ public class SurefireReflectorTest
new ArrayList<String>(), false, "hourly" );
surefireReflector.setDirectoryScannerParameters( foo, directoryScannerParameters );
assertTrue( isCalled( foo ) );
-
}
public void testRunOrderParameters()