Title: [984] trunk/jbehave-core/src/java/org/jbehave/scenario: JBEHAVE-140/1/2: Applied patch from Paul Hammant.

Diff

Modified: trunk/examples/gameoflife/src/scenario/com/lunivore/gameoflife/ICanToggleACell.java (983 => 984)

--- trunk/examples/gameoflife/src/scenario/com/lunivore/gameoflife/ICanToggleACell.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/examples/gameoflife/src/scenario/com/lunivore/gameoflife/ICanToggleACell.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -21,6 +21,7 @@
                 return new ClasspathScenarioDefiner(new UnderscoredCamelCaseResolver(), new PatternScenarioParser(this),
                         classLoader);
             }
-        }, new GridSteps());
+        });
+        addSteps(new GridSteps());
     }
 }

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/AbstractScenario.java (983 => 984)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/AbstractScenario.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/AbstractScenario.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -5,6 +5,10 @@
 import org.jbehave.scenario.parser.ScenarioNameResolver;
 import org.jbehave.scenario.steps.CandidateSteps;
 
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Arrays;
+
 /**
  * <p>
  * Abstract implementation of Scenario which is primarily intended as a base
@@ -40,7 +44,7 @@
 
     private final Configuration configuration;
     private final ScenarioRunner scenarioRunner;
-    private final CandidateSteps[] candidateSteps;
+    private final List<CandidateSteps> candidateSteps = new ArrayList<CandidateSteps>();
     private final Class<? extends RunnableScenario> scenarioClass;
 
     public AbstractScenario(Class<? extends RunnableScenario> scenarioClass, CandidateSteps... candidateSteps) {
@@ -57,12 +61,17 @@
         this.scenarioClass = scenarioClass;
         this.configuration = configuration;
         this.scenarioRunner = scenarioRunner;
-        this.candidateSteps = candidateSteps;
+        this.candidateSteps.addAll(Arrays.asList(candidateSteps));
     }
 
     public void runScenario() throws Throwable {
         StoryDefinition story = configuration.forDefiningScenarios().loadScenarioDefinitionsFor(scenarioClass);
-        scenarioRunner.run(story, configuration, candidateSteps);
+        CandidateSteps[] steps = new CandidateSteps[candidateSteps.size()];
+        candidateSteps.toArray(steps);
+        scenarioRunner.run(story, configuration, steps);
     }
 
+    public void addSteps(CandidateSteps... steps) {
+        this.candidateSteps.addAll(Arrays.asList(steps));
+    }
 }

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/JUnitScenario.java (983 => 984)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/JUnitScenario.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/JUnitScenario.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -49,6 +49,11 @@
         this.delegate.runScenario();
     }
 
+
+    public void addSteps(CandidateSteps... steps) {
+        this.delegate.addSteps(steps);
+    }
+
     /**
      * A JUnit 3-compatibile runnable method which simply delegates
      * [EMAIL PROTECTED] RunnableScenario#runScenario()}

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/RunnableScenario.java (983 => 984)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/RunnableScenario.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/RunnableScenario.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -1,5 +1,7 @@
 package org.jbehave.scenario;
 
+import org.jbehave.scenario.steps.CandidateSteps;
+
 /**
  * <p>
  * Scenario represents the main interface to run a scenario.
@@ -17,4 +19,6 @@
 
     void runScenario() throws Throwable;
 
+    void addSteps(CandidateSteps... steps);
+
 }

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/steps/CandidateStep.java (983 => 984)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/steps/CandidateStep.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/steps/CandidateStep.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -77,6 +77,7 @@
         return new Step() {
             public StepResult perform() {
                 try {
+                    stepMonitor.performing(stepAsString);
                     method.invoke(steps, args);
                     return StepResult.success(stepAsString);
                 } catch (Throwable t) {

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/steps/PrintStreamStepMonitor.java (983 => 984)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/steps/PrintStreamStepMonitor.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/steps/PrintStreamStepMonitor.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -28,6 +28,10 @@
         print(output, message);
     }
 
+    public void performing(String step) {
+    	print(output, step);
+    }
+
     protected void print(PrintStream output, String message) {
         output.println(message);
     }

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/steps/StepMonitor.java (983 => 984)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/steps/StepMonitor.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/steps/StepMonitor.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -9,8 +9,9 @@
  */
 public interface StepMonitor {
 
-    void stepMatchesPattern(String string, boolean matches, String pattern);
+    void stepMatchesPattern(String step, boolean matches, String pattern);
 
     void convertedValueOfType(String value, Type type, Object converted, Class<?> converterClass);
 
+    void performing(String step);
 }

Modified: trunk/jbehave-core/src/java/org/jbehave/scenario/steps/StepsConfiguration.java (983 => 984)

--- trunk/jbehave-core/src/java/org/jbehave/scenario/steps/StepsConfiguration.java	2008-10-19 10:31:55 UTC (rev 983)
+++ trunk/jbehave-core/src/java/org/jbehave/scenario/steps/StepsConfiguration.java	2008-10-24 21:14:09 UTC (rev 984)
@@ -48,6 +48,10 @@
         return monitor;
     }
 
+    public void useMonitor(StepMonitor monitor) {
+         this.monitor = monitor;
+    }
+
     public ParameterConverters getParameterConverters() {
         return parameterConverters;
     }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to