- Revision
- 640
- Author
- sirenian
- Date
- 2007-01-02 05:21:42 -0600 (Tue, 02 Jan 2007)
Log Message
[EK] Added render(Object) method to allow custom rendering.
Modified Paths
- trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java
- trunk/core/src/java/org/jbehave/core/story/renderer/PlainTextRenderer.java
- trunk/core/src/java/org/jbehave/core/story/renderer/Renderer.java
- trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/HellboundStory.java
- trunk/examples/hellbound/src/stories/com/sirenian/hellbound/stories/TheGlyphMovesAsTimePasses.java
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:
