commit 80abb4a31cf10c28abe4667196b149f31e27f332
Author:     Mauro Talevi <mauro.tal...@aquilonia.org>
AuthorDate: Fri, 4 Apr 2014 01:18:52 +0200
Commit:     Mauro Talevi <mauro.tal...@aquilonia.org>
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;
     }
 



Reply via email to