commit 4606628dd0d01809608a261f58afb5c71337c79f Author: Mauro Talevi <mauro.tal...@aquilonia.org> AuthorDate: Wed, 14 May 2014 23:51:42 +0200 Commit: Mauro Talevi <mauro.tal...@aquilonia.org> 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 +