Title: [1407] trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser: story definition now contains story file path too

Diff

Modified: trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/parser/PatternScenarioParserBehaviour.java (1406 => 1407)

--- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/parser/PatternScenarioParserBehaviour.java	2009-12-12 05:51:58 UTC (rev 1406)
+++ trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/parser/PatternScenarioParserBehaviour.java	2009-12-12 06:20:29 UTC (rev 1407)
@@ -26,7 +26,7 @@
         StoryDefinition story = parser.defineStoryFrom(
                 "Given a scenario" + NL + 
                 "When I parse it" + NL + 
-                "Then I should get steps");
+                "Then I should get steps", null);
         
         List<String> steps = story.getScenarios().get(0).getSteps();
         ensureThat(steps.get(0), equalTo("Given a scenario"));
@@ -41,7 +41,7 @@
                 "Given a scenario Givenly" + NL + 
                 "When I parse it to Whenever" + NL +
                 "And I parse it to Anderson" + NL +
-                "Then I should get steps Thenact");
+                "Then I should get steps Thenact", null);
         
         List<String> steps = story.getScenarios().get(0).getSteps();
         ensureThat(steps.get(0), equalTo("Given a scenario Givenly"));
@@ -60,7 +60,7 @@
                 "with another line" + NL + NL +
                 "Then I should get steps" + NL +
                 "without worrying about lines" + NL +
-                "or extra white space between or after steps" + NL + NL);
+                "or extra white space between or after steps" + NL + NL, null);
 
         List<String> steps = story.getScenarios().get(0).getSteps();
         
@@ -81,7 +81,7 @@
             "Scenario: the second scenario" + NL + NL +
             "Given my second scenario";
         PatternScenarioParser parser = new PatternScenarioParser(new PropertyBasedConfiguration());
-        StoryDefinition story = parser.defineStoryFrom(wholeStory);
+        StoryDefinition story = parser.defineStoryFrom(wholeStory, null);
         
         ensureThat(story.getScenarios().get(0).getTitle(), equalTo("the first scenario"));
         ensureThat(story.getScenarios().get(0).getSteps(), equalTo(asList("Given my scenario")));
@@ -114,7 +114,7 @@
             "Then I should see this in the output" + NL +
             "And I should see this in the output" + NL;
         
-        StoryDefinition story = new PatternScenarioParser(new PropertyBasedConfiguration()).defineStoryFrom(wholeStory);
+        StoryDefinition story = new PatternScenarioParser(new PropertyBasedConfiguration()).defineStoryFrom(wholeStory, null);
         
         ensureThat(story.getBlurb().asString(), equalTo("Story: I can output narratives" + NL + NL +
                     "As a developer" + NL +
@@ -188,7 +188,7 @@
 			wholeStory.append(aScenario).append(NL);
 		}
             
-		StoryDefinition story = parser.defineStoryFrom(wholeStory.toString());
+		StoryDefinition story = parser.defineStoryFrom(wholeStory.toString(), null);
         ensureThat(story.getScenarios().size(), equalTo(numberOfScenarios));
         for ( ScenarioDefinition scenario : story.getScenarios() ){
         	ensureThat(scenario.getSteps().size(), equalTo(numberOfGivenWhenThensPerScenario*3));        	
@@ -208,7 +208,7 @@
 	            "|a|b|c|" + NL +
 	            "|d|e|f|";
 		
-	        StoryDefinition story = new PatternScenarioParser(new PropertyBasedConfiguration()).defineStoryFrom(wholeStory);
+	        StoryDefinition story = new PatternScenarioParser(new PropertyBasedConfiguration()).defineStoryFrom(wholeStory, null);
 	        
 	        ScenarioDefinition scenario = story.getScenarios().get(0);
 			ensureThat(scenario.getTitle(), equalTo("A template scenario with table values"));	        
@@ -243,7 +243,7 @@
 	            "When I run the scenario of name <two>" + NL +
 	            "Then I should see <three> in the output";
 		
-	        StoryDefinition story = new PatternScenarioParser(new PropertyBasedConfiguration()).defineStoryFrom(wholeStory);
+	        StoryDefinition story = new PatternScenarioParser(new PropertyBasedConfiguration()).defineStoryFrom(wholeStory, null);
 	        
 	        ScenarioDefinition scenario = story.getScenarios().get(0);
 			ensureThat(scenario.getTitle(), equalTo("A scenario with given scenarios"));	        

Modified: trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/parser/ScenarioFileLoaderBehaviour.java (1406 => 1407)

--- trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/parser/ScenarioFileLoaderBehaviour.java	2009-12-12 05:51:58 UTC (rev 1406)
+++ trunk/core/jbehave-core/src/behaviour/org/jbehave/scenario/parser/ScenarioFileLoaderBehaviour.java	2009-12-12 06:20:29 UTC (rev 1407)
@@ -20,7 +20,7 @@
         ScenarioParser parser = mock(ScenarioParser.class);
         ClasspathScenarioDefiner loader = new ClasspathScenarioDefiner(parser);
         loader.loadScenarioDefinitionsFor(MyPendingScenario.class);
-        verify(parser).defineStoryFrom("Given my step");
+        verify(parser).defineStoryFrom("Given my step", "org/jbehave/scenario/parser/scenarios/my_pending_scenario");
     }
 
     @Test
@@ -28,7 +28,7 @@
         ScenarioParser parser = mock(ScenarioParser.class);
         ClasspathScenarioDefiner loader = new ClasspathScenarioDefiner(new CasePreservingResolver(".txt"), parser);
         loader.loadScenarioDefinitionsFor(MyPendingScenario.class);
-        verify(parser).defineStoryFrom("Given my step");
+        verify(parser).defineStoryFrom("Given my step", "org/jbehave/scenario/parser/scenarios/MyPendingScenario.txt");
     }
     
     @Test(expected = ScenarioNotFoundException.class)

Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/definition/StoryDefinition.java (1406 => 1407)

--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/definition/StoryDefinition.java	2009-12-12 05:51:58 UTC (rev 1406)
+++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/definition/StoryDefinition.java	2009-12-12 06:20:29 UTC (rev 1407)
@@ -10,6 +10,7 @@
     private final Blurb blurb;
     private final List<ScenarioDefinition> scenarioDefinitions;
     private String name = "Story";
+    private String storyPath;
 
     public StoryDefinition(ScenarioDefinition... scenarioDefinitions) {
         this(asList(scenarioDefinitions));
@@ -28,6 +29,11 @@
         this.scenarioDefinitions = scenarioDefinitions;
     }
 
+    public StoryDefinition(Blurb blurb, List<ScenarioDefinition> scenarioDefinitions, String storyPath) {
+        this(blurb, scenarioDefinitions);
+        this.storyPath = storyPath;
+    }
+
     public Blurb getBlurb() {
         return blurb;
     }
@@ -43,4 +49,8 @@
     public void namedAs(String name){
         this.name = name;
     }
+
+    public String getStoryPath() {
+        return storyPath;  
+    }
 }

Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/ClasspathScenarioDefiner.java (1406 => 1407)

--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/ClasspathScenarioDefiner.java	2009-12-12 05:51:58 UTC (rev 1406)
+++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/ClasspathScenarioDefiner.java	2009-12-12 06:20:29 UTC (rev 1407)
@@ -44,18 +44,16 @@
     }
 
     public StoryDefinition loadScenarioDefinitionsFor(Class<? extends RunnableScenario> scenarioClass) {
-        String wholeFileAsString = asString(loadInputStreamFor(scenarioClass));
-        return parser.defineStoryFrom(wholeFileAsString);
+        String storyPath = resolver.resolve(scenarioClass);
+        String wholeFileAsString = asString(loadInputStreamFor(storyPath));
+        return parser.defineStoryFrom(wholeFileAsString, storyPath);
     }
 
 	public StoryDefinition loadScenarioDefinitionsFor(String scenarioPath) {
         String wholeFileAsString = asString(loadInputStreamFor(scenarioPath));
-        return parser.defineStoryFrom(wholeFileAsString);
+        return parser.defineStoryFrom(wholeFileAsString, scenarioPath);
 	}
 
-    private InputStream loadInputStreamFor(Class<? extends RunnableScenario> scenarioClass) {
-        return loadInputStreamFor(resolver.resolve(scenarioClass));
-    }
 
 	private InputStream loadInputStreamFor(String scenarioPath) {
 		InputStream stream = classLoader.getResourceAsStream(scenarioPath);

Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java (1406 => 1407)

--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java	2009-12-12 05:51:58 UTC (rev 1406)
+++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/PatternScenarioParser.java	2009-12-12 06:20:29 UTC (rev 1407)
@@ -34,10 +34,10 @@
 		this.configuration = configuration;
 	}
 
-	public StoryDefinition defineStoryFrom(String wholeStoryAsString) {
+	public StoryDefinition defineStoryFrom(String wholeStoryAsString, String storyPath) {
 		Blurb blurb = parseBlurbFrom(wholeStoryAsString);
 		List<ScenarioDefinition> scenarioDefinitions = parseScenariosFrom(wholeStoryAsString);
-		return new StoryDefinition(blurb, scenarioDefinitions);
+		return new StoryDefinition(blurb, scenarioDefinitions, storyPath);
 	}
 
 	private List<ScenarioDefinition> parseScenariosFrom(

Modified: trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioParser.java (1406 => 1407)

--- trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioParser.java	2009-12-12 05:51:58 UTC (rev 1406)
+++ trunk/core/jbehave-core/src/java/org/jbehave/scenario/parser/ScenarioParser.java	2009-12-12 06:20:29 UTC (rev 1407)
@@ -9,6 +9,6 @@
  */
 public interface ScenarioParser {
 
-    StoryDefinition defineStoryFrom(String wholeStory);
+    StoryDefinition defineStoryFrom(String wholeStory, String storyPath);
 
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to