22
33import io .cucumber .messages .NdjsonToMessageIterable ;
44import io .cucumber .messages .types .Envelope ;
5+ import io .cucumber .query .NamingStrategy ;
6+ import io .cucumber .query .NamingStrategy .Strategy ;
57import org .assertj .core .api .Assertions ;
68import org .junit .jupiter .api .Disabled ;
79import org .junit .jupiter .params .ParameterizedTest ;
2426import java .util .Comparator ;
2527import java .util .List ;
2628import java .util .Objects ;
27- import java .util .stream .Collectors ;
2829import java .util .stream .Stream ;
2930
3031import static io .cucumber .junitxmlformatter .Jackson .OBJECT_MAPPER ;
@@ -34,13 +35,35 @@ class MessagesToJunitXmlWriterAcceptanceTest {
3435 private static final NdjsonToMessageIterable .Deserializer deserializer = (json ) -> OBJECT_MAPPER .readValue (json , Envelope .class );
3536
3637 static List <TestCase > acceptance () throws IOException {
38+ List <TestCase > testCases = new ArrayList <>();
39+
3740 try (Stream <Path > paths = Files .list (Paths .get ("../testdata/src" ))) {
38- return paths
41+ paths
3942 .filter (path -> path .getFileName ().toString ().endsWith (".ndjson" ))
40- .map (TestCase ::new )
43+ .map (source -> new TestCase (
44+ source ,
45+ "default" ,
46+ MessagesToJunitXmlWriter .builder ()
47+ )
48+ )
4149 .sorted (Comparator .comparing (testCase -> testCase .source ))
42- .collect ( Collectors . toList () );
50+ .forEach ( testCases :: add );
4351 }
52+
53+ testCases .add (
54+ new TestCase (
55+ Paths .get ("../testdata/src/examples-tables.ndjson" ),
56+ "custom" ,
57+ MessagesToJunitXmlWriter .builder ()
58+ .testSuiteName ("Cucumber Suite" )
59+ .testClassName ("Cucumber Class" )
60+ .namingStrategy (NamingStrategy
61+ .strategy (Strategy .LONG )
62+ .build ())
63+ )
64+ );
65+
66+ return testCases ;
4467 }
4568
4669 @ ParameterizedTest
@@ -94,7 +117,7 @@ void updateExpectedFiles(TestCase testCase) throws IOException {
94117 private static <T extends OutputStream > T writeJunitXmlReport (TestCase testCase , T out ) throws IOException {
95118 try (InputStream in = Files .newInputStream (testCase .source )) {
96119 try (NdjsonToMessageIterable envelopes = new NdjsonToMessageIterable (in , deserializer )) {
97- try (MessagesToJunitXmlWriter writer = MessagesToJunitXmlWriter . builder ().build (out )) {
120+ try (MessagesToJunitXmlWriter writer = testCase . getBuilder ().build (out )) {
98121 for (Envelope envelope : envelopes ) {
99122 writer .write (envelope );
100123 }
@@ -109,17 +132,25 @@ static class TestCase {
109132 private final Path expected ;
110133
111134 private final String name ;
135+ private final MessagesToJunitXmlWriter .Builder builder ;
136+ private final String strategyName ;
112137
113- TestCase (Path source ) {
138+ TestCase (Path source , String namingStrategyName , MessagesToJunitXmlWriter . Builder builder ) {
114139 this .source = source ;
115140 String fileName = source .getFileName ().toString ();
116141 this .name = fileName .substring (0 , fileName .lastIndexOf (".ndjson" ));
117- this .expected = source .getParent ().resolve (name + ".xml" );
142+ this .expected = source .getParent ().resolve (name + "." + namingStrategyName + ".xml" );
143+ this .builder = builder ;
144+ this .strategyName = namingStrategyName ;
145+ }
146+
147+ MessagesToJunitXmlWriter .Builder getBuilder () {
148+ return builder ;
118149 }
119150
120151 @ Override
121152 public String toString () {
122- return name ;
153+ return name + " -> " + strategyName ;
123154 }
124155
125156 @ Override
0 commit comments