77import org .junit .platform .engine .ExecutionRequest ;
88import org .junit .platform .engine .TestDescriptor ;
99import org .junit .platform .engine .UniqueId ;
10- import org .junit .platform .testkit .engine .EngineExecutionResults ;
1110import org .junit .platform .testkit .engine .EngineTestKit ;
12- import org .junit .platform .testkit .engine .Event ;
1311
1412import java .util .Optional ;
15- import java .util .stream .Stream ;
1613
1714import static io .cucumber .junit .platform .engine .Constants .FILTER_NAME_PROPERTY_NAME ;
1815import static io .cucumber .junit .platform .engine .Constants .FILTER_TAGS_PROPERTY_NAME ;
16+ import static io .cucumber .junit .platform .engine .CucumberEngineDescriptor .ENGINE_ID ;
1917import static org .junit .jupiter .api .Assertions .assertEquals ;
2018import static org .junit .jupiter .api .Assertions .assertNotNull ;
2119import static org .junit .platform .engine .discovery .DiscoverySelectors .selectFile ;
20+ import static org .junit .platform .testkit .engine .EventConditions .event ;
21+ import static org .junit .platform .testkit .engine .EventConditions .finishedSuccessfully ;
22+ import static org .junit .platform .testkit .engine .EventConditions .skippedWithReason ;
23+ import static org .junit .platform .testkit .engine .EventConditions .test ;
2224
2325class CucumberTestEngineTest {
2426
2527 private final CucumberTestEngine engine = new CucumberTestEngine ();
2628
2729 @ Test
2830 void id () {
29- assertEquals ("cucumber" , engine .getId ());
31+ assertEquals (ENGINE_ID , engine .getId ());
3032 }
3133
3234 @ Test
@@ -47,46 +49,39 @@ void createExecutionContext() {
4749
4850 @ Test
4951 void selectAndExecuteSingleScenario () {
50- EngineExecutionResults result = EngineTestKit .engine ("cucumber" )
52+ EngineTestKit .engine (ENGINE_ID )
5153 .selectors (selectFile ("src/test/resources/io/cucumber/junit/platform/engine/single.feature" ))
52- .execute ();
53- assertEquals (2 , result .testEvents ().count ()); // test start and finished
54- assertEquals (1 , result .testEvents ().succeeded ().count ());
54+ .execute ()
55+ .testEvents ()
56+ .assertThatEvents ()
57+ .haveExactly (2 , event (test ()))
58+ .haveExactly (1 , event (finishedSuccessfully ()));
5559 }
5660
5761 @ Test
5862 void selectAndSkipDisabledScenarioByTags () {
59- EngineExecutionResults result = EngineTestKit .engine ("cucumber" )
63+ EngineTestKit .engine (ENGINE_ID )
6064 .configurationParameter (FILTER_TAGS_PROPERTY_NAME , "@Integration and not @Disabled" )
6165 .selectors (selectFile ("src/test/resources/io/cucumber/junit/platform/engine/single.feature" ))
62- .execute ();
63- assertEquals (1 , result .testEvents ().count ());
64- assertEquals (1 , result .testEvents ().skipped ().count ());
65- assertEquals (
66- Optional .of (
67- "'cucumber.filter.tags=( @Integration and not ( @Disabled ) )' did not match this scenario" ),
68- result .testEvents ()
69- .skipped ()
70- .map (Event ::getPayload )
71- .flatMap (o -> o .map (Stream ::of ).orElseGet (Stream ::empty ))
72- .findFirst ());
66+ .execute ()
67+ .testEvents ()
68+ .assertThatEvents ()
69+ .haveExactly (1 , event (test ()))
70+ .haveExactly (1 , event (skippedWithReason (
71+ "'cucumber.filter.tags=( @Integration and not ( @Disabled ) )' did not match this scenario" )));
7372 }
7473
7574 @ Test
7675 void selectAndSkipDisabledScenarioByName () {
77- EngineExecutionResults result = EngineTestKit .engine ("cucumber" )
76+ EngineTestKit .engine (ENGINE_ID )
7877 .configurationParameter (FILTER_NAME_PROPERTY_NAME , "^Nothing$" )
7978 .selectors (selectFile ("src/test/resources/io/cucumber/junit/platform/engine/single.feature" ))
80- .execute ();
81- assertEquals (1 , result .testEvents ().count ());
82- assertEquals (1 , result .testEvents ().skipped ().count ());
83- assertEquals (
84- Optional .of ("'cucumber.filter.name=^Nothing$' did not match this scenario" ),
85- result .testEvents ()
86- .skipped ()
87- .map (Event ::getPayload )
88- .flatMap (o -> o .map (Stream ::of ).orElseGet (Stream ::empty ))
89- .findFirst ());
79+ .execute ()
80+ .testEvents ()
81+ .assertThatEvents ()
82+ .haveExactly (1 , event (test ()))
83+ .haveExactly (1 ,
84+ event (skippedWithReason ("'cucumber.filter.name=^Nothing$' did not match this scenario" )));
9085 }
9186
9287}
0 commit comments