commit 4606628dd0d01809608a261f58afb5c71337c79f
Author: Mauro Talevi <[email protected]>
AuthorDate: Wed, 14 May 2014 23:51:42 +0200
Commit: Mauro Talevi <[email protected]>
CommitDate: Wed, 14 May 2014 23:51:42 +0200
JBEHAVE-1014: Fixed lifecyle parsing for non-English locales.
diff --git
a/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexStoryParser.java
b/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexStoryParser.java
index 9845202..c2935a1 100755
--- a/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexStoryParser.java
+++ b/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexStoryParser.java
@@ -180,9 +180,9 @@ public class RegexStoryParser implements StoryParser {
}
private Outcome parseOutcome(String outcomeAsText) {
- if ( outcomeAsText.equals("SUCCESS") ){
+ if ( outcomeAsText.equals(keywords.outcomeSuccess()) ){
return Outcome.SUCCESS;
- } else if ( outcomeAsText.equals("FAILURE") ){
+ } else if ( outcomeAsText.equals(keywords.outcomeFailure()) ){
return Outcome.FAILURE;
}
return Outcome.ANY;
@@ -193,7 +193,7 @@ public class RegexStoryParser implements StoryParser {
if ( findingOutcome.matches() ){
return findingOutcome.group(1).trim();
}
- return "ANY";
+ return keywords.outcomeAny();
}
private List<Scenario> parseScenariosFrom(String storyAsText) {
diff --git
a/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexStoryParserBehaviour.java
b/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexStoryParserBehaviour.java
index a717e69..86399ca 100755
---
a/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexStoryParserBehaviour.java
+++
b/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexStoryParserBehaviour.java
@@ -323,6 +323,38 @@ public class RegexStoryParserBehaviour {
}
@Test
+ public void
shouldParseStoryWithLifecycleAfterUponOutcomeInNonEnglishLocale() {
+ String wholeStory = "Lebenszyklus: " + NL +
+ "Nach:" + NL + NL +
+ "Ergebnis: IRGENDWELCHE " + NL +
+ "Gegeben im Lager sind 200 T-Shirts" + NL +
+ "Ergebnis: ERFOLG " + NL +
+ "Gegeben im Lager sind 300 T-Shirts" + NL +
+ "Ergebnis: AUSFALL " + NL +
+ "Gegeben im Lager sind 400 T-Shirts" + NL +
+ "Szenario:"+ NL +
+ "Wenn ein Kunde 20 T-Shirts bestellt";
+ parser = new RegexStoryParser(new LocalizedKeywords(Locale.GERMAN));
+ Story story = parser.parseStory(wholeStory, storyPath);
+ List<String> beforeSteps = story.getLifecycle().getBeforeSteps();
+ assertThat(beforeSteps.isEmpty(), equalTo(true));
+ Lifecycle lifecycle = story.getLifecycle();
+ List<String> afterSteps = lifecycle.getAfterSteps();
+ assertThat(afterSteps.get(0), equalTo("Gegeben im Lager sind 200
T-Shirts"));
+ assertThat(afterSteps.get(1), equalTo("Gegeben im Lager sind 300
T-Shirts"));
+ assertThat(afterSteps.get(2), equalTo("Gegeben im Lager sind 400
T-Shirts"));
+ assertThat(lifecycle.getAfterSteps(Outcome.ANY).size(), equalTo(1));
+ assertThat(lifecycle.getAfterSteps(Outcome.ANY).get(0),
equalTo("Gegeben im Lager sind 200 T-Shirts"));
+ assertThat(lifecycle.getAfterSteps(Outcome.SUCCESS).size(),
equalTo(1));
+ assertThat(lifecycle.getAfterSteps(Outcome.SUCCESS).get(0),
equalTo("Gegeben im Lager sind 300 T-Shirts"));
+ assertThat(lifecycle.getAfterSteps(Outcome.FAILURE).size(),
equalTo(1));
+ assertThat(lifecycle.getAfterSteps(Outcome.FAILURE).get(0),
equalTo("Gegeben im Lager sind 400 T-Shirts"));
+ Scenario scenario = story.getScenarios().get(0);
+ List<String> steps = scenario.getSteps();
+ assertThat(steps.get(0), equalTo("Wenn ein Kunde 20 T-Shirts
bestellt"));
+ }
+
+ @Test
public void shouldParseStoryWithGivenStoriesAndExamplesCommentedOut() {
String wholeStory = "Scenario: Show that we can comment out
GivenStories and Examples portions of a scenario"+ NL +
"!-- GivenStories: AGivenStoryToBeCommented" + NL +