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 +



Reply via email to