commit 95a45ed4c1a55c3cc0bbdd2a0d18730375bb1a07
Author: Mauro Talevi <[email protected]>
AuthorDate: Wed May 9 11:04:11 2012 +0200
Commit: Mauro Talevi <[email protected]>
CommitDate: Wed May 9 11:04:11 2012 +0200
JBEHAVE-777: Better serialisation of performable tree, replacing
executable steps with step results.
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 67d776f..66f5ba9 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
@@ -251,16 +251,17 @@ public class PerformableTree {
}
public interface State {
- State run(Step step, StoryReporter reporter, UUIDExceptionWrapper
storyFailureIfItHappened);
+ State run(Step step, List<StepResult> results, StoryReporter reporter,
UUIDExceptionWrapper storyFailureIfItHappened);
}
private final static class FineSoFar implements State {
- public State run(Step step, StoryReporter reporter,
UUIDExceptionWrapper storyFailureIfItHappened) {
+ public State run(Step step, List<StepResult> results, StoryReporter
reporter, UUIDExceptionWrapper storyFailureIfItHappened) {
if (step instanceof ParameterisedStep) {
((ParameterisedStep) step).describeTo(reporter);
}
StepResult result = step.perform(storyFailureIfItHappened);
+ results.add(result);
result.describeTo(reporter);
UUIDExceptionWrapper stepFailure = result.getFailure();
if (stepFailure == null) {
@@ -286,8 +287,9 @@ public class PerformableTree {
this.scenarioFailure = scenarioFailure;
}
- public State run(Step step, StoryReporter reporter,
UUIDExceptionWrapper storyFailure) {
+ public State run(Step step, List<StepResult> results, StoryReporter
reporter, UUIDExceptionWrapper storyFailure) {
StepResult result = step.doNotPerform(storyFailure);
+ results.add(result);
result.describeTo(reporter);
return this;
}
@@ -696,7 +698,8 @@ public class PerformableTree {
public static class PerformableSteps implements Performable {
- private final List<Step> steps;
+ private transient final List<Step> steps;
+ private final List<StepResult> results = new ArrayList<StepResult>();
public PerformableSteps() {
this(null);
@@ -714,7 +717,7 @@ public class PerformableTree {
StoryReporter reporter = context.reporter();
for (Step step : steps) {
context.interruptIfCancelled();
- state = state.run(step, reporter, null);
+ state = state.run(step, results, reporter, null);
}
context.stateIs(state);
generatePendingStepMethods(context, steps);
diff --git
a/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java
b/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java
index a5cb508..0948968 100755
--- a/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java
+++ b/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java
@@ -145,8 +145,9 @@ public class ExamplesTable {
private final String headerSeparator;
private final String valueSeparator;
private final String ignorableSeparator;
- private final ParameterConverters parameterConverters;
- private final TableTransformers tableTransformers;
+ private final transient ParameterConverters parameterConverters;
+ private final transient TableTransformers tableTransformers;
+ private final transient Row defaults;
private final List<String> headers = new ArrayList<String>();
private final List<Map<String, String>> data = new ArrayList<Map<String,
String>>();
private final Properties properties = new Properties();
@@ -154,8 +155,6 @@ public class ExamplesTable {
private Map<String, String> namedParameters = new HashMap<String,
String>();
private boolean trim = true;
- private final Row defaults;
-
public ExamplesTable(String tableAsString) {
this(tableAsString, HEADER_SEPARATOR, VALUE_SEPARATOR);
}