From 67a8d85413c4230c92a290f852ea8835df3be5cb Mon Sep 17 00:00:00 2001 From: "M.P. Korstanje" Date: Wed, 14 Jun 2017 22:09:11 +0200 Subject: [PATCH] [Core] Remove UnreportedStepExecutor --- .../src/main/java/cucumber/runner/Runner.java | 36 +------------------ .../main/java/cucumber/runtime/Backend.java | 6 ---- .../runtime/UnreportedStepExecutor.java | 11 ------ .../cucumber/runtime/java/JavaBackend.java | 7 ---- .../cucumber/runtime/stub/StubBackend.java | 5 --- .../cucumber/runtime/stub/StubBackend.java | 5 --- 6 files changed, 1 insertion(+), 69 deletions(-) delete mode 100644 core/src/main/java/cucumber/runtime/UnreportedStepExecutor.java diff --git a/core/src/main/java/cucumber/runner/Runner.java b/core/src/main/java/cucumber/runner/Runner.java index 75c4c06b78..20bf5e5fe1 100644 --- a/core/src/main/java/cucumber/runner/Runner.java +++ b/core/src/main/java/cucumber/runner/Runner.java @@ -13,22 +13,15 @@ import cucumber.runtime.RuntimeOptions; import cucumber.runtime.PickleStepDefinitionMatch; import cucumber.runtime.UndefinedPickleStepDefinitionMatch; -import cucumber.runtime.UnreportedStepExecutor; import gherkin.events.PickleEvent; -import gherkin.pickles.Argument; -import gherkin.pickles.PickleLocation; -import gherkin.pickles.PickleRow; import gherkin.pickles.PickleStep; -import gherkin.pickles.PickleString; -import gherkin.pickles.PickleTable; import gherkin.pickles.PickleTag; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; -public class Runner implements UnreportedStepExecutor { +public class Runner { private final Glue glue; private final EventBus bus; private final Collection backends; @@ -41,37 +34,10 @@ public Runner(Glue glue, EventBus bus, Collection backends, R this.backends = backends; for (Backend backend : backends) { backend.loadGlue(glue, runtimeOptions.getGlue()); - backend.setUnreportedStepExecutor(this); } } - //TODO: Maybe this should go into the cucumber step execution model and it should return the result of that execution! - @Override - public void runUnreportedStep(String featurePath, String language, String stepName, int line, List dataTableRows, PickleString docString) throws Throwable { - List arguments = new ArrayList(); - if (dataTableRows != null && !dataTableRows.isEmpty()) { - arguments.add(new PickleTable(dataTableRows)); - } else if (docString != null) { - arguments.add(docString); - } - PickleStep step = new PickleStep(stepName, arguments, Collections.emptyList()); - - PickleStepDefinitionMatch match = glue.stepDefinitionMatch(featurePath, step); - if (match == null) { - UndefinedStepException error = new UndefinedStepException(step); - - StackTraceElement[] originalTrace = error.getStackTrace(); - StackTraceElement[] newTrace = new StackTraceElement[originalTrace.length + 1]; - newTrace[0] = new StackTraceElement("✽", "StepDefinition", featurePath, line); - System.arraycopy(originalTrace, 0, newTrace, 1, originalTrace.length); - error.setStackTrace(newTrace); - - throw error; - } - match.runStep(language, null); - } - public void runPickle(PickleEvent pickle) { buildBackendWorlds(); // Java8 step definitions will be added to the glue here TestCase testCase = createTestCaseForPickle(pickle); diff --git a/core/src/main/java/cucumber/runtime/Backend.java b/core/src/main/java/cucumber/runtime/Backend.java index 83d67f6649..3f08195c26 100644 --- a/core/src/main/java/cucumber/runtime/Backend.java +++ b/core/src/main/java/cucumber/runtime/Backend.java @@ -11,12 +11,6 @@ public interface Backend { */ void loadGlue(Glue glue, List gluePaths); - /** - * Invoked once, handing the backend a reference to a step executor - * in case the backend needs to call steps defined within other steps - */ - void setUnreportedStepExecutor(UnreportedStepExecutor executor); - /** * Invoked before a new scenario starts. Implementations should do any necessary * setup of new, isolated state here. diff --git a/core/src/main/java/cucumber/runtime/UnreportedStepExecutor.java b/core/src/main/java/cucumber/runtime/UnreportedStepExecutor.java deleted file mode 100644 index a6b1bee472..0000000000 --- a/core/src/main/java/cucumber/runtime/UnreportedStepExecutor.java +++ /dev/null @@ -1,11 +0,0 @@ -package cucumber.runtime; - -import gherkin.pickles.PickleRow; -import gherkin.pickles.PickleString; - -import java.util.List; - -public interface UnreportedStepExecutor { - //TODO: Maybe this should go into the cucumber step execution model and it should return the result of that execution! - void runUnreportedStep(String featurePath, String language, String stepName, int line, List dataTableRows, PickleString docString) throws Throwable; -} diff --git a/java/src/main/java/cucumber/runtime/java/JavaBackend.java b/java/src/main/java/cucumber/runtime/java/JavaBackend.java index 52492d752e..44078c2be8 100644 --- a/java/src/main/java/cucumber/runtime/java/JavaBackend.java +++ b/java/src/main/java/cucumber/runtime/java/JavaBackend.java @@ -14,12 +14,10 @@ import cucumber.runtime.Backend; import cucumber.runtime.ClassFinder; import cucumber.runtime.CucumberException; -import cucumber.runtime.DuplicateStepDefinitionException; import cucumber.runtime.Env; import cucumber.runtime.Glue; import cucumber.runtime.HookDefinition; import cucumber.runtime.StepDefinition; -import cucumber.runtime.UnreportedStepExecutor; import cucumber.runtime.Utils; import cucumber.runtime.io.ResourceLoader; import cucumber.runtime.io.ResourceLoaderClassFinder; @@ -111,11 +109,6 @@ public void loadGlue(Glue glue, Method method, Class glueCodeClass) { methodScanner.scan(this, method, glueCodeClass); } - @Override - public void setUnreportedStepExecutor(UnreportedStepExecutor executor) { - //Not used here yet - } - @Override public void buildWorld() { objectFactory.start(); diff --git a/junit/src/test/java/cucumber/runtime/stub/StubBackend.java b/junit/src/test/java/cucumber/runtime/stub/StubBackend.java index 338b8383e3..2bf322ac0a 100644 --- a/junit/src/test/java/cucumber/runtime/stub/StubBackend.java +++ b/junit/src/test/java/cucumber/runtime/stub/StubBackend.java @@ -3,7 +3,6 @@ import io.cucumber.stepexpression.TypeRegistry; import cucumber.runtime.Backend; import cucumber.runtime.Glue; -import cucumber.runtime.UnreportedStepExecutor; import cucumber.runtime.io.ResourceLoader; import cucumber.runtime.snippets.FunctionNameGenerator; import gherkin.pickles.PickleStep; @@ -23,10 +22,6 @@ public StubBackend(ResourceLoader resourceLoader, TypeRegistry typeRegistry) { public void loadGlue(Glue glue, List gluePaths) { } - @Override - public void setUnreportedStepExecutor(UnreportedStepExecutor executor) { - } - @Override public void buildWorld() { } diff --git a/testng/src/test/java/cucumber/runtime/stub/StubBackend.java b/testng/src/test/java/cucumber/runtime/stub/StubBackend.java index 338b8383e3..2bf322ac0a 100644 --- a/testng/src/test/java/cucumber/runtime/stub/StubBackend.java +++ b/testng/src/test/java/cucumber/runtime/stub/StubBackend.java @@ -3,7 +3,6 @@ import io.cucumber.stepexpression.TypeRegistry; import cucumber.runtime.Backend; import cucumber.runtime.Glue; -import cucumber.runtime.UnreportedStepExecutor; import cucumber.runtime.io.ResourceLoader; import cucumber.runtime.snippets.FunctionNameGenerator; import gherkin.pickles.PickleStep; @@ -23,10 +22,6 @@ public StubBackend(ResourceLoader resourceLoader, TypeRegistry typeRegistry) { public void loadGlue(Glue glue, List gluePaths) { } - @Override - public void setUnreportedStepExecutor(UnreportedStepExecutor executor) { - } - @Override public void buildWorld() { }