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


The following commit(s) were added to refs/heads/1546-1222 by this push:
     new 61b8443  tests with display name
61b8443 is described below

commit 61b84436e53c7cf03386ba783a622640925bd2c3
Author: tibordigana <tibordig...@apache.org>
AuthorDate: Wed Apr 3 19:27:01 2019 +0200

    tests with display name
---
 pom.xml                                            |   6 +
 .../maven/surefire/report/SimpleReportEntry.java   |  66 +++++---
 surefire-its/pom.xml                               |   2 +-
 .../apache/maven/surefire/its/JUnitPlatformIT.java |  10 +-
 .../DisplayNameTest.java                           |   4 +-
 surefire-providers/surefire-junit-platform/pom.xml |   5 +
 .../surefire/junitplatform/RunListenerAdapter.java |  71 +++------
 .../junitplatform/RunListenerAdapterTest.java      | 169 ++++++++++++++-------
 8 files changed, 208 insertions(+), 125 deletions(-)

diff --git a/pom.xml b/pom.xml
index e30a333..20e10c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -357,6 +357,12 @@
         <artifactId>powermock-api-mockito2</artifactId>
         <version>${powermockVersion}</version>
       </dependency>
+      <dependency>
+        <groupId>org.powermock</groupId>
+        <artifactId>powermock-reflect</artifactId>
+        <version>${powermockVersion}</version>
+        <scope>compile</scope>
+      </dependency>
       <!-- END: PowerMock@Java9 -->
       <dependency>
         <groupId>junit</groupId>
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/report/SimpleReportEntry.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/report/SimpleReportEntry.java
index aba9784..8e8367e 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/report/SimpleReportEntry.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/report/SimpleReportEntry.java
@@ -74,7 +74,7 @@ public class SimpleReportEntry
         this( source, sourceText, name, nameText, null, null, message, 
Collections.<String, String>emptyMap() );
     }
 
-    protected SimpleReportEntry( String source, String sourceText, String 
name, String nameText,
+    public SimpleReportEntry( String source, String sourceText, String name, 
String nameText,
                                  StackTraceWriter stackTraceWriter, Integer 
elapsed, String message,
                                  Map<String, String> systemProperties )
     {
@@ -139,12 +139,24 @@ public class SimpleReportEntry
     }
 
     @Override
+    public String getSourceText()
+    {
+        return sourceText;
+    }
+
+    @Override
     public String getName()
     {
         return name;
     }
 
     @Override
+    public String getNameText()
+    {
+        return nameText;
+    }
+
+    @Override
     public String getGroup()
     {
         return null;
@@ -171,8 +183,9 @@ public class SimpleReportEntry
     @Override
     public String toString()
     {
-        return "ReportEntry{" + "source='" + source + '\'' + ", name='" + name 
+ '\'' + ", stackTraceWriter="
-            + stackTraceWriter + ", elapsed=" + elapsed + ", message=" + 
message + '}';
+        return "ReportEntry{" + "source='" + source + "', sourceText='" + 
sourceText
+                + "', name='" + name + "', nameText='" + nameText + "', 
stackTraceWriter='"
+                + stackTraceWriter + "', elapsed='" + elapsed + "', message='" 
+ message + "'}";
     }
 
     @Override
@@ -194,16 +207,25 @@ public class SimpleReportEntry
         }
 
         SimpleReportEntry that = (SimpleReportEntry) o;
-        return isElapsedTimeEqual( that ) && isNameEqual( that ) && 
isSourceEqual( that ) && isStackEqual( that );
+        return isSourceEqual( that ) && isSourceTextEqual( that )
+                && isNameEqual( that ) && isNameTextEqual( that )
+                && isStackEqual( that )
+                && isElapsedTimeEqual( that )
+                && isSystemPropertiesEqual( that )
+                && isMessageEqual( that );
     }
 
     @Override
     public int hashCode()
     {
-        int result = Objects.hashCode( source );
-        result = 31 * result + Objects.hashCode( name );
-        result = 31 * result + Objects.hashCode( stackTraceWriter );
-        result = 31 * result + Objects.hashCode( elapsed );
+        int result = Objects.hashCode( getSourceName() );
+        result = 31 * result + Objects.hashCode( getSourceText() );
+        result = 31 * result + Objects.hashCode( getName() );
+        result = 31 * result + Objects.hashCode( getNameText() );
+        result = 31 * result + Objects.hashCode( getStackTraceWriter() );
+        result = 31 * result + Objects.hashCode( getElapsed() );
+        result = 31 * result + Objects.hashCode( getSystemProperties() );
+        result = 31 * result + Objects.hashCode( getMessage() );
         return result;
     }
 
@@ -221,33 +243,41 @@ public class SimpleReportEntry
 
     private boolean isElapsedTimeEqual( SimpleReportEntry en )
     {
-        return Objects.equals( elapsed, en.elapsed );
+        return Objects.equals( getElapsed(), en.getElapsed() );
+    }
+
+    private boolean isNameTextEqual( SimpleReportEntry en )
+    {
+        return Objects.equals( getNameText(), en.getNameText() );
     }
 
     private boolean isNameEqual( SimpleReportEntry en )
     {
-        return Objects.equals( name, en.name );
+        return Objects.equals( getName(), en.getName() );
     }
 
     private boolean isSourceEqual( SimpleReportEntry en )
     {
-        return Objects.equals( source, en.source );
+        return Objects.equals( getSourceName(), en.getSourceName() );
+    }
+
+    private boolean isSourceTextEqual( SimpleReportEntry en )
+    {
+        return Objects.equals( getSourceText(), en.getSourceText() );
     }
 
     private boolean isStackEqual( SimpleReportEntry en )
     {
-        return Objects.equals( stackTraceWriter, en.stackTraceWriter );
+        return Objects.equals( getStackTraceWriter(), en.getStackTraceWriter() 
);
     }
 
-    @Override
-    public String getNameText()
+    private boolean isSystemPropertiesEqual( SimpleReportEntry en )
     {
-        return nameText;
+        return Objects.equals( getSystemProperties(), en.getSystemProperties() 
);
     }
 
-    @Override
-    public String getSourceText()
+    private boolean isMessageEqual( SimpleReportEntry en )
     {
-        return sourceText;
+        return Objects.equals( getMessage(), en.getMessage() );
     }
 }
diff --git a/surefire-its/pom.xml b/surefire-its/pom.xml
index b1a1a43..c155694 100644
--- a/surefire-its/pom.xml
+++ b/surefire-its/pom.xml
@@ -169,7 +169,7 @@
                     <forkMode>once</forkMode>
                     <argLine>-server -Xmx64m -XX:+UseG1GC 
-XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Djava.awt.headless=true 
-Djdk.net.URLClassPath.disableClassPathURLCheck=true</argLine>
                     <includes>
-                        <include>org/apache/**/*IT*.java</include>
+                        <include>org/apache/**/JUnitPlatformIT.java</include>
                     </includes>
                     <!-- Pass current surefire version to the main suite so 
that it -->
                     <!-- can forward to all integration test projects. 
SUREFIRE-513 -->
diff --git 
a/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnitPlatformIT.java 
b/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnitPlatformIT.java
index 6440f05..aeeb15a 100644
--- 
a/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnitPlatformIT.java
+++ 
b/surefire-its/src/test/java/org/apache/maven/surefire/its/JUnitPlatformIT.java
@@ -39,6 +39,7 @@ public class JUnitPlatformIT
     public void testJupiterEngine()
     {
         unpack( "/junit-platform-engine-jupiter" )
+                .setTestToRun( "Basic*Test" )
                 .executeTest()
                 .verifyErrorFree( 5 );
     }
@@ -51,14 +52,11 @@ public class JUnitPlatformIT
                 .verifyErrorFree( 7 );
 
         validator.getSurefireReportsFile( 
"junitplatformenginejupiter.DisplayNameTest.txt" )
-                 // .assertContainsText( "<< ✨ >>" ) // after @DisplayName is 
uncommented via SUREFIRE-1222
-                 .assertContainsText( "Test set: 
junitplatformenginejupiter.DisplayNameTest" );
+                 .assertContainsText( "<< ✨ >>" );
 
         validator.getSurefireReportsFile( 
"TEST-junitplatformenginejupiter.DisplayNameTest.xml" )
-                 // At the moment, the testcase with the same is reported 
twice: test1() and test2() use the same display name
-                 // SUREFIRE-1222 will solve this.
-                 .assertContainsText( "testcase name=\"73$71 ✔\" 
classname=\"junitplatformenginejupiter.DisplayNameTest\"" )
-                 .assertContainsText( "testcase name=\"73$71 ✔\" 
classname=\"junitplatformenginejupiter.DisplayNameTest\"" );
+        .assertContainsText( "testcase name=\"73$71 ✔\" 
classname=\"junitplatformenginejupiter.DisplayNameTest\"" )
+        .assertContainsText( "testcase name=\"73$72 ✔\" 
classname=\"junitplatformenginejupiter.DisplayNameTest\"" );
     }
 
     @Test
diff --git 
a/surefire-its/src/test/resources/junit-platform-engine-jupiter/src/test/java/junitplatformenginejupiter/DisplayNameTest.java
 
b/surefire-its/src/test/resources/junit-platform-engine-jupiter/src/test/java/junitplatformenginejupiter/DisplayNameTest.java
index 31687ea..aaaa461 100644
--- 
a/surefire-its/src/test/resources/junit-platform-engine-jupiter/src/test/java/junitplatformenginejupiter/DisplayNameTest.java
+++ 
b/surefire-its/src/test/resources/junit-platform-engine-jupiter/src/test/java/junitplatformenginejupiter/DisplayNameTest.java
@@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 
-// @DisplayName("<< ✨ >>")
+@DisplayName("<< ✨ >>")
 class DisplayNameTest
 {
     @Test
@@ -35,7 +35,7 @@ class DisplayNameTest
     }
 
     @Test
-    @DisplayName("73$71 ✔")
+    @DisplayName("73$72 ✔")
     void test2()
     {
     }
diff --git a/surefire-providers/surefire-junit-platform/pom.xml 
b/surefire-providers/surefire-junit-platform/pom.xml
index 8533b56..eaaaeef 100644
--- a/surefire-providers/surefire-junit-platform/pom.xml
+++ b/surefire-providers/surefire-junit-platform/pom.xml
@@ -101,6 +101,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-reflect</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.assertj</groupId>
             <artifactId>assertj-core</artifactId>
             <scope>test</scope>
diff --git 
a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java
 
b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java
index 8252dfa..3b0f363 100644
--- 
a/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java
+++ 
b/surefire-providers/surefire-junit-platform/src/main/java/org/apache/maven/surefire/junitplatform/RunListenerAdapter.java
@@ -74,12 +74,12 @@ final class RunListenerAdapter
                         && testIdentifier.getSource().filter( 
ClassSource.class::isInstance ).isPresent() )
         {
             testStartTime.put( testIdentifier, System.currentTimeMillis() );
-            runListener.testSetStarting( createTestSetReportEntry( 
testIdentifier ) );
+            runListener.testSetStarting( createReportEntry( testIdentifier ) );
         }
         else if ( testIdentifier.isTest() )
         {
             testStartTime.put( testIdentifier, System.currentTimeMillis() );
-            runListener.testStarting( createTestSetReportEntry( testIdentifier 
) );
+            runListener.testStarting( createReportEntry( testIdentifier ) );
         }
     }
 
@@ -104,15 +104,15 @@ final class RunListenerAdapter
                     }
                     else
                     {
-                        runListener.testSetCompleted( 
createTestSetReportEntry( testIdentifier, testExecutionResult,
-                                systemProps(), elapsed ) );
+                        runListener.testSetCompleted( createReportEntry( 
testIdentifier, testExecutionResult,
+                                systemProps(), null, elapsed ) );
                     }
                     break;
                 case FAILED:
                     if ( !isTest )
                     {
-                        runListener.testSetCompleted( 
createTestSetReportEntry( testIdentifier, testExecutionResult,
-                                systemProps(), elapsed ) );
+                        runListener.testSetCompleted( createReportEntry( 
testIdentifier, testExecutionResult,
+                                systemProps(), null, elapsed ) );
                     }
                     else if ( testExecutionResult.getThrowable()
                             .filter( AssertionError.class::isInstance 
).isPresent() )
@@ -127,13 +127,12 @@ final class RunListenerAdapter
                 default:
                     if ( isTest )
                     {
-                        String[] classMethodNames = toClassMethodName( 
testIdentifier );
-                        runListener.testSucceeded( createReportEntry( 
classMethodNames, null, elapsed ) );
+                        runListener.testSucceeded( createReportEntry( 
testIdentifier, null, elapsed ) );
                     }
                     else
                     {
                         runListener.testSetCompleted(
-                                createTestSetReportEntry( testIdentifier, 
null, systemProps(), elapsed ) );
+                                createReportEntry( testIdentifier, null, 
systemProps(), null, elapsed ) );
                     }
             }
         }
@@ -150,57 +149,35 @@ final class RunListenerAdapter
     public void executionSkipped( TestIdentifier testIdentifier, String reason 
)
     {
         testStartTime.remove( testIdentifier );
-        String[] classMethodName = toClassMethodName( testIdentifier );
-        String className = classMethodName[0];
-        String classText = classMethodName[1];
-        String methodName = classMethodName[2];
-        String methodText = classMethodName[3];
-        runListener.testSkipped( new SimpleReportEntry( className, classText, 
methodName, methodText, reason ) );
+        runListener.testSkipped( createReportEntry( testIdentifier, null, 
emptyMap(), reason, null ) );
     }
 
-    private SimpleReportEntry createTestSetReportEntry( TestIdentifier 
testIdentifier,
-                                                        TestExecutionResult 
testExecutionResult,
-                                                        Map<String, String> 
systemProperties,
-                                                        Integer elapsedTime )
+    private SimpleReportEntry createReportEntry( TestIdentifier testIdentifier,
+                                                 TestExecutionResult 
testExecutionResult,
+                                                 Map<String, String> 
systemProperties,
+                                                 String reason,
+                                                 Integer elapsedTime )
     {
         String[] classMethodName = toClassMethodName( testIdentifier );
-        String className = classMethodName[1];
-        String methodName = classMethodName[3];
+        String className = classMethodName[0];
+        String classText = classMethodName[1];
+        String methodName = testIdentifier.isTest() ? classMethodName[2] : 
null;
+        String methodText = testIdentifier.isTest() ? classMethodName[3] : 
null;
         StackTraceWriter stw =
                 testExecutionResult == null ? null : toStackTraceWriter( 
className, methodName, testExecutionResult );
-        return new SimpleReportEntry( className, null, methodName, null, stw, 
elapsedTime, systemProperties );
+        return new SimpleReportEntry( className, classText, methodName, 
methodText,
+                stw, elapsedTime, reason, systemProperties );
     }
 
-    private SimpleReportEntry createTestSetReportEntry( TestIdentifier 
testIdentifier )
+    private SimpleReportEntry createReportEntry( TestIdentifier testIdentifier 
)
     {
-        return createTestSetReportEntry( testIdentifier, emptyMap() );
-    }
-
-    private SimpleReportEntry createTestSetReportEntry( TestIdentifier 
testIdentifier,
-                                                        Map<String, String> 
systemProperties )
-    {
-        return createTestSetReportEntry( testIdentifier, null, 
systemProperties, null );
+        return createReportEntry( testIdentifier, null, null );
     }
 
     private SimpleReportEntry createReportEntry( TestIdentifier testIdentifier,
                                                  TestExecutionResult 
testExecutionResult, Integer elapsedTime )
     {
-        String[] classMethodNames = toClassMethodName( testIdentifier );
-        String realClassName = classMethodNames[0];
-        String realMethodName = classMethodNames[2];
-        StackTraceWriter stackTraceWriter = toStackTraceWriter( realClassName, 
realMethodName, testExecutionResult );
-        return createReportEntry( classMethodNames, stackTraceWriter, 
elapsedTime );
-    }
-
-    private static SimpleReportEntry createReportEntry( String[] 
classMethodNames, StackTraceWriter stackTraceWriter,
-                                                 Integer elapsedTime )
-    {
-        String realClassName = classMethodNames[0];
-        String classText = classMethodNames[1];
-        String realMethodName = classMethodNames[2];
-        String methodText = classMethodNames[3];
-        return new SimpleReportEntry( realClassName, classText, 
realMethodName, methodText,
-                stackTraceWriter, elapsedTime );
+        return createReportEntry( testIdentifier, testExecutionResult, 
emptyMap(), null, elapsedTime );
     }
 
     private StackTraceWriter toStackTraceWriter( String realClassName, String 
realMethodName,
@@ -263,7 +240,7 @@ final class RunListenerAdapter
             String className = classSource.getClassName();
             String simpleClassName = className.substring( 1 + 
className.lastIndexOf( '.' ) );
             String source = display.equals( simpleClassName ) ? className : 
display;
-            return new String[] { source, source, null, null };
+            return new String[] { className, source, null, null };
         }
         else
         {
diff --git 
a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java
 
b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java
index 9219502..5af1830 100644
--- 
a/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java
+++ 
b/surefire-providers/surefire-junit-platform/src/test/java/org/apache/maven/surefire/junitplatform/RunListenerAdapterTest.java
@@ -33,8 +33,10 @@ import static 
org.junit.platform.engine.TestExecutionResult.failed;
 import static org.junit.platform.engine.TestExecutionResult.successful;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.*;
+import static org.powermock.reflect.Whitebox.getInternalState;
 
 import java.lang.reflect.Method;
+import java.util.Map;
 import java.util.Optional;
 
 import org.apache.maven.surefire.report.PojoStackTraceWriter;
@@ -121,8 +123,10 @@ public class RunListenerAdapterTest
         verify( listener ).testStarting( entryCaptor.capture() );
 
         ReportEntry entry = entryCaptor.getValue();
-        assertEquals( MY_TEST_METHOD_NAME + "(String)", entry.getName() );
+        assertEquals( MY_TEST_METHOD_NAME, entry.getName() );
+        assertEquals( MY_TEST_METHOD_NAME + "(String)", entry.getNameText() );
         assertEquals( MyTestClass.class.getName(), entry.getSourceName() );
+        assertEquals( MyTestClass.class.getName(), entry.getSourceText() );
         assertNull( entry.getStackTraceWriter() );
     }
 
@@ -137,23 +141,26 @@ public class RunListenerAdapterTest
         parent.addChild( child );
         TestPlan plan = TestPlan.from( singletonList( engine ) );
 
+        String className = MyTestClass.class.getName();
+
         adapter.testPlanExecutionStarted( plan );
         adapter.executionStarted( TestIdentifier.from( engine ) );
         adapter.executionStarted( TestIdentifier.from( parent ) );
         verify( listener )
-                .testSetStarting(new 
SimpleReportEntry(MyTestClass.class.getName(), null, null, null));
+                .testSetStarting( new SimpleReportEntry( className, className, 
null, null ) );
         verifyNoMoreInteractions( listener );
 
         adapter.executionStarted( TestIdentifier.from( child ) );
         verify( listener )
-                .testStarting(new 
SimpleReportEntry(MyTestClass.class.getName(), null, MY_TEST_METHOD_NAME, 
null));
+                .testStarting(
+                        new SimpleReportEntry( className, className, 
MY_TEST_METHOD_NAME, MY_TEST_METHOD_NAME ) );
         verifyNoMoreInteractions( listener );
 
         adapter.executionFinished( TestIdentifier.from( child ), successful() 
);
         ArgumentCaptor<SimpleReportEntry> report = ArgumentCaptor.forClass( 
SimpleReportEntry.class );
         verify( listener ).testSucceeded( report.capture() );
         assertThat( report.getValue().getSourceName() )
-                .isEqualTo( MyTestClass.class.getName() );
+                .isEqualTo( className );
         assertThat( report.getValue().getName() )
                 .isEqualTo( MY_TEST_METHOD_NAME );
         assertThat( report.getValue().getElapsed() )
@@ -166,7 +173,7 @@ public class RunListenerAdapterTest
         report = ArgumentCaptor.forClass( SimpleReportEntry.class );
         verify( listener ).testSetCompleted( report.capture() );
         assertThat( report.getValue().getSourceName() )
-                .isEqualTo( MyTestClass.class.getName() );
+                .isEqualTo( className );
         assertThat( report.getValue().getName() )
                 .isNull();
         assertThat( report.getValue().getElapsed() )
@@ -181,14 +188,22 @@ public class RunListenerAdapterTest
 
     @Test
     public void displayNamesInClassAndMethods()
+            throws Exception
     {
         EngineDescriptor engine = newEngineDescriptor();
         TestDescriptor parent = newClassDescriptor( "parent" );
         engine.addChild( parent );
-        TestDescriptor child1 = newTestDescriptor( 
parent.getUniqueId().append( "test", "child1" ), "child1", TEST );
+
+        UniqueId id1 = parent.getUniqueId().append( 
MyTestClass.class.getName(), MY_NAMED_TEST_METHOD_NAME );
+        Method m1 = MyTestClass.class.getDeclaredMethod( 
MY_NAMED_TEST_METHOD_NAME );
+        TestDescriptor child1 = new TestMethodTestDescriptorWithDisplayName( 
id1, MyTestClass.class, m1, "dn1" );
         parent.addChild( child1 );
-        TestDescriptor child2 = newTestDescriptor( 
parent.getUniqueId().append( "test", "child2" ), "child2", TEST );
+
+        UniqueId id2 = parent.getUniqueId().append( 
MyTestClass.class.getName(), MY_TEST_METHOD_NAME );
+        Method m2 = MyTestClass.class.getDeclaredMethod( MY_TEST_METHOD_NAME, 
String.class );
+        TestDescriptor child2 = new TestMethodTestDescriptor( id2, 
MyTestClass.class, m2 );
         parent.addChild( child2 );
+
         TestPlan plan = TestPlan.from( singletonList( engine ) );
 
         InOrder inOrder = inOrder( listener );
@@ -200,6 +215,8 @@ public class RunListenerAdapterTest
         ArgumentCaptor<SimpleReportEntry> report = ArgumentCaptor.forClass( 
SimpleReportEntry.class );
         inOrder.verify( listener ).testSetStarting( report.capture() );
         assertThat( report.getValue().getSourceName() )
+                .isEqualTo( MyTestClass.class.getName() );
+        assertThat( report.getValue().getSourceText() )
                 .isEqualTo( "parent" );
         assertThat( report.getValue().getName() )
                 .isNull();
@@ -208,53 +225,76 @@ public class RunListenerAdapterTest
         verifyZeroInteractions( listener );
 
         adapter.executionStarted( TestIdentifier.from( child1 ) );
-        inOrder.verify( listener ).testStarting( new SimpleReportEntry( 
"parent", null, "child1", null ) );
-        verifyNoMoreInteractions( listener );
+        inOrder.verify( listener )
+                .testStarting( new SimpleReportEntry( 
MyTestClass.class.getName(), "parent",
+                        MY_NAMED_TEST_METHOD_NAME, "dn1" ) );
+        inOrder.verifyNoMoreInteractions();
 
         adapter.executionFinished( TestIdentifier.from( child1 ), successful() 
);
         report = ArgumentCaptor.forClass( SimpleReportEntry.class );
         inOrder.verify( listener ).testSucceeded( report.capture() );
         assertThat( report.getValue().getSourceName() )
+                .isEqualTo( MyTestClass.class.getName() );
+        assertThat( report.getValue().getSourceText() )
                 .isEqualTo( "parent" );
         assertThat( report.getValue().getName() )
-                .isEqualTo( "child1" );
+                .isEqualTo( MY_NAMED_TEST_METHOD_NAME );
+        assertThat( report.getValue().getNameText() )
+                .isEqualTo( "dn1" );
         assertThat( report.getValue().getElapsed() )
                 .isNotNull();
         assertThat( report.getValue().getSystemProperties() )
                 .isEmpty();
-        verifyNoMoreInteractions( listener );
+        inOrder.verifyNoMoreInteractions();
 
         adapter.executionStarted( TestIdentifier.from( child2 ) );
-        inOrder.verify( listener ).testStarting( new SimpleReportEntry( 
"parent", null, "child2", null ) );
-        verifyNoMoreInteractions( listener );
+        inOrder.verify( listener )
+                .testStarting( new SimpleReportEntry( 
MyTestClass.class.getName(), "parent",
+                        MY_TEST_METHOD_NAME, MY_TEST_METHOD_NAME + "(String)" 
) );
+        inOrder.verifyNoMoreInteractions();
 
-        adapter.executionFinished( TestIdentifier.from( child2 ), successful() 
);
+        Exception assumptionFailure = new Exception();
+        adapter.executionFinished( TestIdentifier.from( child2 ), aborted( 
assumptionFailure ) );
         report = ArgumentCaptor.forClass( SimpleReportEntry.class );
-        inOrder.verify( listener ).testSucceeded( report.capture() );
+        inOrder.verify( listener ).testAssumptionFailure( report.capture() );
         assertThat( report.getValue().getSourceName() )
+                .isEqualTo( MyTestClass.class.getName() );
+        assertThat( report.getValue().getSourceText() )
                 .isEqualTo( "parent" );
         assertThat( report.getValue().getName() )
-                .isEqualTo( "child2" );
+                .isEqualTo( MY_TEST_METHOD_NAME );
+        assertThat( report.getValue().getNameText() )
+                .isEqualTo( MY_TEST_METHOD_NAME + "(String)" );
         assertThat( report.getValue().getElapsed() )
                 .isNotNull();
         assertThat( report.getValue().getSystemProperties() )
                 .isEmpty();
-        verifyNoMoreInteractions( listener );
+        assertThat( report.getValue().getStackTraceWriter() )
+                .isNotNull();
+        assertThat( 
report.getValue().getStackTraceWriter().getThrowable().getTarget() )
+                .isSameAs(assumptionFailure);
+        inOrder.verifyNoMoreInteractions();
 
         adapter.executionFinished( TestIdentifier.from( parent ), successful() 
);
         inOrder.verify( listener ).testSetCompleted( report.capture() );
         assertThat( report.getValue().getSourceName() )
+                .isEqualTo( MyTestClass.class.getName() );
+        assertThat( report.getValue().getSourceText() )
                 .isEqualTo( "parent" );
         assertThat( report.getValue().getName() )
                 .isNull();
+        assertThat( report.getValue().getNameText() )
+                .isNull();
         assertThat( report.getValue().getElapsed() )
                 .isNotNull();
         assertThat( report.getValue().getSystemProperties() )
                 .isNotEmpty();
-        verifyNoMoreInteractions( listener );
+        assertThat( report.getValue().getStackTraceWriter() )
+                .isNull();
+        inOrder.verifyNoMoreInteractions();
 
         adapter.executionFinished( TestIdentifier.from( engine ), successful() 
);
-        verifyNoMoreInteractions( listener );
+        inOrder.verifyNoMoreInteractions();
     }
 
     @Test
@@ -271,9 +311,15 @@ public class RunListenerAdapterTest
         TestPlan plan = TestPlan.from( singletonList( engine ) );
 
         adapter.testPlanExecutionStarted( plan );
+        assertThat( (TestPlan) getInternalState( adapter, "testPlan" ) )
+                .isSameAs( plan );
+        assertThat( (Map) getInternalState( adapter, "testStartTime" ) )
+                .isEmpty();
+
+
         adapter.executionStarted( TestIdentifier.from( engine ) );
         verify( listener )
-                .testStarting(new SimpleReportEntry("engine", null, "engine", 
null));
+                .testStarting( new SimpleReportEntry( "engine", "engine", 
"engine", "engine" ) );
         verifyNoMoreInteractions( listener );
 
         adapter.executionFinished( TestIdentifier.from( engine ), successful() 
);
@@ -281,12 +327,25 @@ public class RunListenerAdapterTest
         verify( listener ).testSucceeded( report.capture() );
         assertThat( report.getValue().getSourceName() )
                 .isEqualTo( "engine" );
+        assertThat( report.getValue().getSourceText() )
+                .isEqualTo( "engine" );
         assertThat( report.getValue().getName() )
                 .isEqualTo( "engine" );
+        assertThat( report.getValue().getNameText() )
+                .isEqualTo( "engine" );
         assertThat( report.getValue().getElapsed() )
                 .isNotNull();
+        assertThat( report.getValue().getStackTraceWriter() )
+                .isNull();
         assertThat( report.getValue().getSystemProperties() )
                 .isEmpty();
+
+        adapter.testPlanExecutionFinished( plan );
+        assertThat( (TestPlan) getInternalState( adapter, "testPlan" ) )
+                .isNull();
+        assertThat( (Map) getInternalState( adapter, "testStartTime" ) )
+                .isEmpty();
+
         verifyNoMoreInteractions( listener );
     }
 
@@ -408,21 +467,34 @@ public class RunListenerAdapterTest
 
         adapter.executionFinished( TestIdentifier.from( classDescriptor ), 
successful() );
 
+        String className = MyTestClass.class.getName();
+
         verify( listener )
-                .testSetStarting( new SimpleReportEntry( 
MyTestClass.class.getName(), null, null, null ) );
+                .testSetStarting( new SimpleReportEntry( className, className, 
null, null ) );
 
         ArgumentCaptor<SimpleReportEntry> report = ArgumentCaptor.forClass( 
SimpleReportEntry.class );
-        verify( listener ).testSetCompleted( report.capture() );
+        verify( listener )
+                .testSetCompleted(report.capture() );
+
         assertThat( report.getValue().getSourceName() )
-                .isEqualTo( MyTestClass.class.getName() );
+                .isEqualTo( className );
+        assertThat( report.getValue().getSourceText() )
+                .isEqualTo( className );
         assertThat( report.getValue().getName() )
                 .isNull();
+        assertThat( report.getValue().getNameText() )
+                .isNull();
         assertThat( report.getValue().getStackTraceWriter() )
                 .isNull();
         assertThat( report.getValue().getElapsed() )
                 .isNotNull();
+        assertThat( report.getValue().getSystemProperties() )
+                .isNotEmpty();
 
-        verify( listener, never() ).testSucceeded( any() );
+        verify( listener, never() )
+                .testSucceeded(any() );
+
+        verifyNoMoreInteractions( listener );
     }
 
     @Test
@@ -442,6 +514,9 @@ public class RunListenerAdapterTest
         ArgumentCaptor<ReportEntry> entryCaptor = ArgumentCaptor.forClass( 
ReportEntry.class );
         verify( listener ).testStarting( entryCaptor.capture() );
         assertEquals( parentDisplay, entryCaptor.getValue().getSourceName() );
+        assertEquals( parentDisplay, entryCaptor.getValue().getSourceText() );
+        assertNull( entryCaptor.getValue().getName() );
+        assertNull( entryCaptor.getValue().getNameText() );
     }
 
     @Test
@@ -488,22 +563,8 @@ public class RunListenerAdapterTest
     public void displayNamesIgnoredInReport()
                     throws NoSuchMethodException
     {
-        class TestMethodTestDescriptorWithDisplayName extends 
AbstractTestDescriptor
-        {
-            private TestMethodTestDescriptorWithDisplayName( UniqueId 
uniqueId, Class<?> testClass, Method testMethod )
-            {
-                super( uniqueId, "some display name", MethodSource.from( 
testClass, testMethod ) );
-            }
-
-            @Override
-            public Type getType()
-            {
-                return Type.TEST;
-            }
-        }
-
         TestMethodTestDescriptorWithDisplayName descriptor = new 
TestMethodTestDescriptorWithDisplayName( newId(),
-                MyTestClass.class, MyTestClass.class.getDeclaredMethod( 
"myNamedTestMethod" ) );
+                MyTestClass.class, MyTestClass.class.getDeclaredMethod( 
"myNamedTestMethod" ), "some display name" );
 
         TestIdentifier factoryIdentifier = TestIdentifier.from( descriptor );
         ArgumentCaptor<ReportEntry> entryCaptor = ArgumentCaptor.forClass( 
ReportEntry.class );
@@ -513,6 +574,8 @@ public class RunListenerAdapterTest
 
         ReportEntry value = entryCaptor.getValue();
 
+        assertEquals( MyTestClass.class.getName(), value.getSourceName() );
+        assertEquals( MyTestClass.class.getName(), value.getSourceText() );
         assertEquals( "myNamedTestMethod", value.getName() );
         assertEquals( "some display name", value.getNameText() );
     }
@@ -589,18 +652,6 @@ public class RunListenerAdapterTest
         return new EngineDescriptor( UniqueId.forEngine( "engine" ), "engine" 
);
     }
 
-    private TestDescriptor newTestDescriptor( UniqueId uniqueId, String 
displayName, Type type )
-    {
-        return new AbstractTestDescriptor( uniqueId, displayName )
-        {
-            @Override
-            public Type getType()
-            {
-                return type;
-            }
-        };
-    }
-
     private static TestIdentifier identifiersAsParentOnTestPlan(
                     TestPlan plan, TestDescriptor parent, TestDescriptor child 
)
     {
@@ -628,6 +679,7 @@ public class RunListenerAdapterTest
     }
 
     private static final String MY_TEST_METHOD_NAME = "myTestMethod";
+    private static final String MY_NAMED_TEST_METHOD_NAME = 
"myNamedTestMethod";
 
     private static class MyTestClass
     {
@@ -647,4 +699,19 @@ public class RunListenerAdapterTest
         {
         }
     }
+
+    static class TestMethodTestDescriptorWithDisplayName extends 
AbstractTestDescriptor
+    {
+        private TestMethodTestDescriptorWithDisplayName( UniqueId uniqueId,
+                                                         Class<?> testClass, 
Method testMethod, String displayName )
+        {
+            super( uniqueId, displayName, MethodSource.from( testClass, 
testMethod ) );
+        }
+
+        @Override
+        public Type getType()
+        {
+            return Type.TEST;
+        }
+    }
 }

Reply via email to