commit 80abb4a31cf10c28abe4667196b149f31e27f332
Author: Mauro Talevi <[email protected]>
AuthorDate: Fri, 4 Apr 2014 01:18:52 +0200
Commit: Mauro Talevi <[email protected]>
CommitDate: Fri, 4 Apr 2014 01:18:52 +0200
JBEHAVE-1007: Ensured same order of lifecycle steps as StoryRunner.
diff --git
a/jbehave-core/src/main/java/org/jbehave/core/embedder/PerformableTree.java
b/jbehave-core/src/main/java/org/jbehave/core/embedder/PerformableTree.java
index 36e32c9..f7c6e1c 100644
--- a/jbehave-core/src/main/java/org/jbehave/core/embedder/PerformableTree.java
+++ b/jbehave-core/src/main/java/org/jbehave/core/embedder/PerformableTree.java
@@ -133,16 +133,12 @@ public class PerformableTree {
if (isParameterisedByExamples(scenario)) {
ExamplesTable table = scenario.getExamplesTable();
for (Map<String, String> scenarioParameters : table.getRows())
{
-
performableScenario.addExampleScenario(exampleScenario(context, story, scenario,
+
performableScenario.addExampleScenario(exampleScenario(context,
story.getLifecycle(), scenario,
storyAndScenarioMeta, scenarioParameters));
}
} else { // plain old scenario
-
performableScenario.addBeforeSteps(context.lifecycleSteps(story.getLifecycle(),
storyAndScenarioMeta, Stage.BEFORE));
- addMetaParameters(storyParameters, storyAndScenarioMeta);
-
performableScenario.addGivenStories(performableGivenStories(context,
scenario.getGivenStories(),
- storyParameters));
- performableScenario.addSteps(context.scenarioSteps(scenario,
storyParameters));
-
performableScenario.addAfterSteps(context.lifecycleSteps(story.getLifecycle(),
storyAndScenarioMeta, Stage.AFTER));
+ addStepsWithLifecycle(performableScenario, context,
story.getLifecycle(), storyParameters,
+ scenario, storyAndScenarioMeta);
}
// after scenario steps, if allowed
@@ -155,19 +151,30 @@ public class PerformableTree {
return performableScenario;
}
- private PerformableExampleScenario exampleScenario(RunContext context,
Story story, Scenario scenario,
+ private void addStepsWithLifecycle(PerformableScenario
performableScenario, RunContext context,
+ Lifecycle lifecycle, Map<String, String>
storyParameters,
+ Scenario scenario, Meta storyAndScenarioMeta) {
+
performableScenario.addBeforeSteps(context.lifecycleSteps(lifecycle,
storyAndScenarioMeta, Stage.BEFORE));
+ addMetaParameters(storyParameters, storyAndScenarioMeta);
+
performableScenario.addGivenStories(performableGivenStories(context,
scenario.getGivenStories(),
+ storyParameters));
+ performableScenario.addSteps(context.scenarioSteps(scenario,
storyParameters));
+
performableScenario.addAfterSteps(context.lifecycleSteps(lifecycle,
storyAndScenarioMeta, Stage.AFTER));
+ }
+
+ private PerformableExampleScenario exampleScenario(RunContext context,
Lifecycle lifecycle, Scenario scenario,
Meta storyAndScenarioMeta, Map<String, String> scenarioParameters)
{
PerformableExampleScenario exampleScenario = new
PerformableExampleScenario(scenarioParameters);
-
exampleScenario.addBeforeSteps(context.lifecycleSteps(story.getLifecycle(),
storyAndScenarioMeta, Stage.BEFORE));
exampleScenario.addBeforeSteps(context.beforeOrAfterScenarioSteps(storyAndScenarioMeta,
Stage.BEFORE,
ScenarioType.EXAMPLE));
+ exampleScenario.addBeforeSteps(context.lifecycleSteps(lifecycle,
storyAndScenarioMeta, Stage.BEFORE));
addMetaParameters(scenarioParameters, storyAndScenarioMeta);
exampleScenario
.addGivenStories(performableGivenStories(context,
scenario.getGivenStories(), scenarioParameters));
exampleScenario.addSteps(context.scenarioSteps(scenario,
scenarioParameters));
+ exampleScenario.addAfterSteps(context.lifecycleSteps(lifecycle,
storyAndScenarioMeta, Stage.AFTER));
exampleScenario.addAfterSteps(context.beforeOrAfterScenarioSteps(storyAndScenarioMeta,
Stage.AFTER,
ScenarioType.EXAMPLE));
-
exampleScenario.addAfterSteps(context.lifecycleSteps(story.getLifecycle(),
storyAndScenarioMeta, Stage.AFTER));
return exampleScenario;
}