diff --git a/dotnet/Cucumber.QueryTest/QueryAcceptanceTest.cs b/dotnet/Cucumber.QueryTest/QueryAcceptanceTest.cs index 6f1678b9..01c3de15 100644 --- a/dotnet/Cucumber.QueryTest/QueryAcceptanceTest.cs +++ b/dotnet/Cucumber.QueryTest/QueryAcceptanceTest.cs @@ -224,6 +224,15 @@ public static IEnumerable Acceptance() .Select(tcf => q.FindTestStepsStartedBy(tcf).Select(tss => tss.TestStepId).ToList()) .ToList() }, + ["findTestStepsFinishedBy"] = q => new Dictionary + { + ["testCaseStarted"] = q.FindAllTestCaseStarted() + .Select(tcs => q.FindTestStepsFinishedBy(tcs).Select(tss => tss.TestStepId).ToList()) + .ToList(), + ["testCaseFinished"] = q.FindAllTestCaseFinished() + .Select(tcf => q.FindTestStepsFinishedBy(tcf).Select(tss => tss.TestStepId).ToList()) + .ToList() + }, ["findTestRunHookFinishedBy"] = q => q.FindAllTestRunHookStarted() .Select(trhs => q.FindTestRunHookFinishedBy(trhs)?.TestRunHookStartedId) .ToList(), @@ -241,9 +250,6 @@ public static IEnumerable Acceptance() .Select(tsf => q.FindTestStepBy(tsf)?.Id) .ToList() }, - ["findTestStepsFinishedBy"] = q => q.FindAllTestCaseStarted() - .Select(tcs => q.FindTestStepsFinishedBy(tcs).Select(tsf => tsf.TestStepId).ToList()) - .ToList(), ["findTestStepFinishedAndTestStepBy"] = q => q.FindAllTestCaseStarted() .SelectMany(tcs => q.FindTestStepFinishedAndTestStepBy(tcs)) .Select(pair => new object?[] { pair.Item1.TestStepId, pair.Item2.Id }) diff --git a/java/src/test/java/io/cucumber/query/QueryAcceptanceTest.java b/java/src/test/java/io/cucumber/query/QueryAcceptanceTest.java index 10f5c8bf..82fe430b 100644 --- a/java/src/test/java/io/cucumber/query/QueryAcceptanceTest.java +++ b/java/src/test/java/io/cucumber/query/QueryAcceptanceTest.java @@ -412,6 +412,22 @@ static Map> createQueries() { return results; }); + queries.put("findTestStepsFinishedBy", query -> { + Map results = new LinkedHashMap<>(); + + results.put("testCaseStarted", query.findAllTestCaseFinished().stream() + .map(query::findTestStepsFinishedBy) + .map(Collection::stream) + .map(testStepStarted -> testStepStarted.map(TestStepFinished::getTestStepId)) + .collect(toList())); + results.put("testCaseFinished", query.findAllTestCaseFinished().stream() + .map(query::findTestStepsFinishedBy) + .map(Collection::stream) + .map(testStepStarted -> testStepStarted.map(TestStepFinished::getTestStepId)) + .collect(toList())); + return results; + }); + queries.put("findTestRunHookFinishedBy", query -> query.findAllTestRunHookStarted().stream() .map(query::findTestRunHookFinishedBy) .map(testRunHookFinished -> testRunHookFinished.map(TestRunHookFinished::getTestRunHookStartedId)) @@ -440,10 +456,6 @@ static Map> createQueries() { return results; }); - queries.put("findTestStepsFinishedBy", query -> query.findAllTestCaseStarted().stream() - .map(query::findTestStepsFinishedBy) - .map(testStepFinisheds -> testStepFinisheds.stream().map(TestStepFinished::getTestStepId).collect(toList())) - .collect(toList())); queries.put("findTestStepFinishedAndTestStepBy", query -> query.findAllTestCaseStarted().stream() .map(query::findTestStepFinishedAndTestStepBy) .flatMap(Collection::stream) diff --git a/javascript/src/acceptance.spec.ts b/javascript/src/acceptance.spec.ts index 73777079..3c593c17 100644 --- a/javascript/src/acceptance.spec.ts +++ b/javascript/src/acceptance.spec.ts @@ -254,6 +254,22 @@ describe('Acceptance Tests', async () => { ), } }, + findTestStepsFinishedBy: (query: Query) => { + return { + testCaseStarted: query + .findAllTestCaseStarted() + .map((testCaseStarted) => query.findTestStepsFinishedBy(testCaseStarted)) + .map((testStepsStarted) => + testStepsStarted.map((testStepStarted) => testStepStarted.testStepId) + ), + testCaseFinished: query + .findAllTestCaseFinished() + .map((testCaseFinished) => query.findTestStepsFinishedBy(testCaseFinished)) + .map((testStepsStarted) => + testStepsStarted.map((testStepStarted) => testStepStarted.testStepId) + ), + } + }, findTestStepBy: (query: Query) => { return { testStepStarted: query @@ -268,13 +284,6 @@ describe('Acceptance Tests', async () => { .map((testStep) => testStep?.id), } }, - findTestStepsFinishedBy: (query: Query) => - query - .findAllTestCaseStarted() - .map((testCaseStarted) => query.findTestStepsFinishedBy(testCaseStarted)) - .map((testStepFinisheds) => - testStepFinisheds.map((testStepFinished) => testStepFinished?.testStepId) - ), findTestStepFinishedAndTestStepBy: (query: Query) => query .findAllTestCaseStarted() diff --git a/ruby/spec/cucumber/query_spec.rb b/ruby/spec/cucumber/query_spec.rb index e4d9a0a3..e83cd29a 100644 --- a/ruby/spec/cucumber/query_spec.rb +++ b/ruby/spec/cucumber/query_spec.rb @@ -89,6 +89,18 @@ def parse_ndjson_file(path) results['testStepStarted'] = query.find_all_test_step_started.map { |message| query.find_test_step_by(message).id } results['testStepFinished'] = query.find_all_test_step_finished.map { |message| query.find_test_step_by(message).id } results + end, + 'findTestStepsStartedBy' => lambda do |query| + results = {} + results['testCaseStarted'] = query.find_all_test_case_started.map { |message| query.find_test_steps_started_by(message).map(&:test_step_id) } + results['testCaseFinished'] = query.find_all_test_case_finished.map { |message| query.find_test_steps_started_by(message).map(&:test_step_id) } + results + end, + 'findTestStepsFinishedBy' => lambda do |query| + results = {} + results['testCaseStarted'] = query.find_all_test_case_started.map { |message| query.find_test_steps_finished_by(message).map(&:test_step_id) } + results['testCaseFinished'] = query.find_all_test_case_finished.map { |message| query.find_test_steps_finished_by(message).map(&:test_step_id) } + results end } diff --git a/testdata/src/attachments.findTestStepsFinishedBy.results.json b/testdata/src/attachments.findTestStepsFinishedBy.results.json index 296f713c..853e5eee 100644 --- a/testdata/src/attachments.findTestStepsFinishedBy.results.json +++ b/testdata/src/attachments.findTestStepsFinishedBy.results.json @@ -1,26 +1,54 @@ -[ - [ - "42" +{ + "testCaseStarted" : [ + [ + "42" + ], + [ + "44" + ], + [ + "46" + ], + [ + "48" + ], + [ + "50" + ], + [ + "52" + ], + [ + "54" + ], + [ + "56" + ] ], - [ - "44" - ], - [ - "46" - ], - [ - "48" - ], - [ - "50" - ], - [ - "52" - ], - [ - "54" - ], - [ - "56" + "testCaseFinished" : [ + [ + "42" + ], + [ + "44" + ], + [ + "46" + ], + [ + "48" + ], + [ + "50" + ], + [ + "52" + ], + [ + "54" + ], + [ + "56" + ] ] -] \ No newline at end of file +} \ No newline at end of file diff --git a/testdata/src/empty.findTestStepsFinishedBy.results.json b/testdata/src/empty.findTestStepsFinishedBy.results.json index 7c69f784..713d2c73 100644 --- a/testdata/src/empty.findTestStepsFinishedBy.results.json +++ b/testdata/src/empty.findTestStepsFinishedBy.results.json @@ -1,3 +1,8 @@ -[ - [ ] -] \ No newline at end of file +{ + "testCaseStarted" : [ + [ ] + ], + "testCaseFinished" : [ + [ ] + ] +} \ No newline at end of file diff --git a/testdata/src/examples-tables.findTestStepsFinishedBy.results.json b/testdata/src/examples-tables.findTestStepsFinishedBy.results.json index 755055f3..d73d4a0d 100644 --- a/testdata/src/examples-tables.findTestStepsFinishedBy.results.json +++ b/testdata/src/examples-tables.findTestStepsFinishedBy.results.json @@ -1,37 +1,76 @@ -[ - [ - "58", - "59", - "60" +{ + "testCaseStarted" : [ + [ + "58", + "59", + "60" + ], + [ + "62", + "63", + "64" + ], + [ + "66", + "67", + "68" + ], + [ + "70", + "71", + "72" + ], + [ + "74", + "75", + "76" + ], + [ + "78", + "79", + "80" + ], + [ + "82", + "83", + "84" + ] ], - [ - "62", - "63", - "64" - ], - [ - "66", - "67", - "68" - ], - [ - "70", - "71", - "72" - ], - [ - "74", - "75", - "76" - ], - [ - "78", - "79", - "80" - ], - [ - "82", - "83", - "84" + "testCaseFinished" : [ + [ + "58", + "59", + "60" + ], + [ + "62", + "63", + "64" + ], + [ + "66", + "67", + "68" + ], + [ + "70", + "71", + "72" + ], + [ + "74", + "75", + "76" + ], + [ + "78", + "79", + "80" + ], + [ + "82", + "83", + "84" + ] ] -] \ No newline at end of file +} \ No newline at end of file diff --git a/testdata/src/global-hooks-attachments.findTestStepsFinishedBy.results.json b/testdata/src/global-hooks-attachments.findTestStepsFinishedBy.results.json index 59d96e47..68029809 100644 --- a/testdata/src/global-hooks-attachments.findTestStepsFinishedBy.results.json +++ b/testdata/src/global-hooks-attachments.findTestStepsFinishedBy.results.json @@ -1,5 +1,12 @@ -[ - [ - "10" +{ + "testCaseStarted" : [ + [ + "10" + ] + ], + "testCaseFinished" : [ + [ + "10" + ] ] -] \ No newline at end of file +} \ No newline at end of file diff --git a/testdata/src/global-hooks.findTestStepsFinishedBy.results.json b/testdata/src/global-hooks.findTestStepsFinishedBy.results.json index 442c5992..c5ac03fe 100644 --- a/testdata/src/global-hooks.findTestStepsFinishedBy.results.json +++ b/testdata/src/global-hooks.findTestStepsFinishedBy.results.json @@ -1,8 +1,18 @@ -[ - [ - "18" +{ + "testCaseStarted" : [ + [ + "18" + ], + [ + "20" + ] ], - [ - "20" + "testCaseFinished" : [ + [ + "18" + ], + [ + "20" + ] ] -] \ No newline at end of file +} \ No newline at end of file diff --git a/testdata/src/hooks.findTestStepsFinishedBy.results.json b/testdata/src/hooks.findTestStepsFinishedBy.results.json index 5da12787..0c1f503c 100644 --- a/testdata/src/hooks.findTestStepsFinishedBy.results.json +++ b/testdata/src/hooks.findTestStepsFinishedBy.results.json @@ -1,12 +1,26 @@ -[ - [ - "14", - "15", - "16" +{ + "testCaseStarted" : [ + [ + "14", + "15", + "16" + ], + [ + "18", + "19", + "20" + ] ], - [ - "18", - "19", - "20" + "testCaseFinished" : [ + [ + "14", + "15", + "16" + ], + [ + "18", + "19", + "20" + ] ] -] \ No newline at end of file +} \ No newline at end of file diff --git a/testdata/src/minimal.findTestStepsFinishedBy.results.json b/testdata/src/minimal.findTestStepsFinishedBy.results.json index 1587f5e8..99df297f 100644 --- a/testdata/src/minimal.findTestStepsFinishedBy.results.json +++ b/testdata/src/minimal.findTestStepsFinishedBy.results.json @@ -1,5 +1,12 @@ -[ - [ - "7" +{ + "testCaseStarted" : [ + [ + "7" + ] + ], + "testCaseFinished" : [ + [ + "7" + ] ] -] \ No newline at end of file +} \ No newline at end of file diff --git a/testdata/src/rules.findTestStepsFinishedBy.results.json b/testdata/src/rules.findTestStepsFinishedBy.results.json index 50361260..c30a7a42 100644 --- a/testdata/src/rules.findTestStepsFinishedBy.results.json +++ b/testdata/src/rules.findTestStepsFinishedBy.results.json @@ -1,20 +1,42 @@ -[ - [ - "41", - "42", - "43", - "44" +{ + "testCaseStarted" : [ + [ + "41", + "42", + "43", + "44" + ], + [ + "46", + "47", + "48", + "49" + ], + [ + "51", + "52", + "53", + "54" + ] ], - [ - "46", - "47", - "48", - "49" - ], - [ - "51", - "52", - "53", - "54" + "testCaseFinished" : [ + [ + "41", + "42", + "43", + "44" + ], + [ + "46", + "47", + "48", + "49" + ], + [ + "51", + "52", + "53", + "54" + ] ] -] \ No newline at end of file +} \ No newline at end of file diff --git a/testdata/src/unknown-parameter-type.findTestStepsFinishedBy.results.json b/testdata/src/unknown-parameter-type.findTestStepsFinishedBy.results.json index 1587f5e8..99df297f 100644 --- a/testdata/src/unknown-parameter-type.findTestStepsFinishedBy.results.json +++ b/testdata/src/unknown-parameter-type.findTestStepsFinishedBy.results.json @@ -1,5 +1,12 @@ -[ - [ - "7" +{ + "testCaseStarted" : [ + [ + "7" + ] + ], + "testCaseFinished" : [ + [ + "7" + ] ] -] \ No newline at end of file +} \ No newline at end of file