Title: [jbehave] [640] trunk/core/src/java/org/jbehave/core/story/renderer: [EK] Added render(Object) method to allow custom rendering.

Diff

Modified: trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java (639 => 640)

--- trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java	2007-01-02 11:06:45 UTC (rev 639)
+++ trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java	2007-01-02 11:21:42 UTC (rev 640)
@@ -22,7 +22,9 @@
  */
 public class PlainTextRendererBehaviour extends UsingMatchers {
 
-	public void shouldRenderStoryWhenNarratingStory() {
+	private static final String NL = System.getProperty("line.separator");
+
+    public void shouldRenderStoryWhenNarratingStory() {
 		
 		ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
 		PrintStream printStream = new PrintStream(byteStream);
@@ -35,8 +37,6 @@
 		
 		String result = byteStream.toString();
 		
-		String NL = System.getProperty("line.separator");
-		
 		StringBuffer expectedResult = new StringBuffer();
 		expectedResult.append("Story: ").append(textOf(story)).append(NL + NL);
 		expectedResult.append("As a ").append(SimpleStory.ROLE).append(NL);
@@ -56,6 +56,22 @@
 		
 		ensureThat(result, eq(expectedResult.toString()));
 	}
+    
+    public void shouldProvideComponentsWithCustomRenderingUsingStrings() {
+        StringBuffer expectedResult = new StringBuffer();
+        expectedResult.append("Custom renderable" + NL);
+        
+        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
+        PrintStream printStream = new PrintStream(byteStream);
+        
+        PlainTextRenderer renderer = new PlainTextRenderer(printStream);
+        
+        renderer.render("Custom renderable");
+        
+        String result = byteStream.toString();
+        
+        ensureThat(result, eq(expectedResult.toString()));
+    }
 
     private String textOf(Object obj) {
         return new CamelCaseConverter(obj).toPhrase();

Modified: trunk/core/src/java/org/jbehave/core/story/renderer/PlainTextRenderer.java (639 => 640)

--- trunk/core/src/java/org/jbehave/core/story/renderer/PlainTextRenderer.java	2007-01-02 11:06:45 UTC (rev 639)
+++ trunk/core/src/java/org/jbehave/core/story/renderer/PlainTextRenderer.java	2007-01-02 11:21:42 UTC (rev 640)
@@ -84,6 +84,9 @@
         out.println(phrase);
     }
 
+    public void render(Object obj) {
+        out.println(obj.toString());
+    }
 
     private boolean previousComponentWasA(Class clazz) {
         return previousComponent != null && clazz.isAssignableFrom(previousComponent.getClass());

Modified: trunk/core/src/java/org/jbehave/core/story/renderer/Renderer.java (639 => 640)

--- trunk/core/src/java/org/jbehave/core/story/renderer/Renderer.java	2007-01-02 11:06:45 UTC (rev 639)
+++ trunk/core/src/java/org/jbehave/core/story/renderer/Renderer.java	2007-01-02 11:21:42 UTC (rev 640)
@@ -22,4 +22,10 @@
 	void renderGiven(Given given);
 	void renderOutcome(Outcome outcome);
 	void renderEvent(Event event);
+    
+    /**
+     * This method can be used by scenario components overriding the
+     * narrateTo method in order to render custom descriptions.
+     */
+    void render(Object obj);
 }

Modified: trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/HellboundStory.java (639 => 640)

--- trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/HellboundStory.java	2007-01-02 11:06:45 UTC (rev 639)
+++ trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/HellboundStory.java	2007-01-02 11:21:42 UTC (rev 640)
@@ -3,13 +3,9 @@
 import org.jbehave.core.story.domain.Narrative;
 import org.jbehave.core.story.domain.ScenarioDrivenStory;
 
-public class HellboundStory extends ScenarioDrivenStory {
+public abstract class HellboundStory extends ScenarioDrivenStory {
 
 	public HellboundStory(Narrative narrative) {
 		super(narrative);      
 	}
-
-    public void specify() {
-        // TODO Auto-generated method stub
-    }
 }

Modified: trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/TheGlyphMovesAsTimePasses.java (639 => 640)

--- trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/TheGlyphMovesAsTimePasses.java	2007-01-02 11:06:45 UTC (rev 639)
+++ trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/TheGlyphMovesAsTimePasses.java	2007-01-02 11:21:42 UTC (rev 640)
@@ -8,8 +8,10 @@
 
 	public TheGlyphMovesAsTimePasses() {
 		super(new Narrative("game player", "the glyph to move downwards as time passes", "the game is a challenge"));
-		
-		addScenario(new ThePlayerSeesTheFirstGlyphMove());
 	}
+
+    public void specify() {
+        addScenario(new ThePlayerSeesTheFirstGlyphMove());
+    }
 	
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to