- Revision
- 641
- Author
- sirenian
- Date
- 2007-01-02 05:50:17 -0600 (Tue, 02 Jan 2007)
Log Message
[EK] Added behaviour for StoryPrinter, made it specify stories before printing. Moved expected description of SimpleStory into the class to avoid duplication in PlainTextRendererBehaviour.
Modified Paths
- trunk/core/src/behaviour/org/jbehave/core/story/SimpleStory.java
- trunk/core/src/behaviour/org/jbehave/core/story/StoryRunnerBehaviour.java
- trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java
- trunk/core/src/java/org/jbehave/core/story/StoryPrinter.java
Added Paths
Diff
Modified: trunk/core/src/behaviour/org/jbehave/core/story/SimpleStory.java (640 => 641)
--- trunk/core/src/behaviour/org/jbehave/core/story/SimpleStory.java 2007-01-02 11:21:42 UTC (rev 640) +++ trunk/core/src/behaviour/org/jbehave/core/story/SimpleStory.java 2007-01-02 11:50:17 UTC (rev 641) @@ -7,9 +7,13 @@ import org.jbehave.core.story.domain.Narrative; import org.jbehave.core.story.domain.ScenarioDrivenStory; import org.jbehave.core.story.domain.World; +import org.jbehave.core.util.CamelCaseConverter; public class SimpleStory extends ScenarioDrivenStory { + + private static final String NL = System.getProperty("line.separator"); + public static String ROLE = "behaviour analyst"; public static String FEATURE = "to see the behaviour of PlainTextRenderer"; @@ -81,4 +85,30 @@ public void verify(World world) { } } + + public static String expectedDescription() { + StringBuffer expectedResult = new StringBuffer(); + expectedResult.append("Story: ").append(textOf(new SimpleStory())).append(NL + NL); + expectedResult.append("As a ").append(SimpleStory.ROLE).append(NL); + expectedResult.append("I want ").append(SimpleStory.FEATURE).append(NL); + expectedResult.append("So that ").append(SimpleStory.BENEFIT).append(NL + NL); + expectedResult.append("Scenario: ").append(textOf(new SimpleStory.PlainTextRendererWorks())).append(NL + NL); + expectedResult.append("Given ").append(textOf(new SimpleStory.EverythingCompiles())).append(NL); + expectedResult.append("When ").append(textOf(new SimpleStory.ICrossMyFingers())).append(NL); + expectedResult.append("Then ").append(textOf(new SimpleStory.PlainTextRendererShouldWork())).append(NL + NL); + + expectedResult.append("Scenario: ").append(textOf(new SimpleStory.PlainTextRendererStillWorks())).append(NL + NL); + expectedResult.append("Given ").append(textOf(new SimpleStory.PlainTextRendererWorks())).append(NL);; + expectedResult.append("and ").append(textOf(new SimpleStory.FirstScenarioRanWithoutFallingOver())).append(NL); + expectedResult.append("When ").append(textOf(new SimpleStory.IDoNothing())).append(NL); + expectedResult.append("Then ").append(textOf(new SimpleStory.PlainTextRendererShouldStillWork())).append(NL); + expectedResult.append("and ").append(textOf(new SimpleStory.BehaviourClassShouldNotFail())).append(NL); + + return expectedResult.toString(); + } + + + private static String textOf(Object obj) { + return new CamelCaseConverter(obj).toPhrase(); + } } \ No newline at end of file
Added: trunk/core/src/behaviour/org/jbehave/core/story/StoryPrinterBehaviour.java (0 => 641)
--- trunk/core/src/behaviour/org/jbehave/core/story/StoryPrinterBehaviour.java (rev 0) +++ trunk/core/src/behaviour/org/jbehave/core/story/StoryPrinterBehaviour.java 2007-01-02 11:50:17 UTC (rev 641) @@ -0,0 +1,23 @@ +package org.jbehave.core.story; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +import org.jbehave.core.mock.UsingMatchers; + +public class StoryPrinterBehaviour extends UsingMatchers { + + + public void shouldSpecifyAndPrintStoryAsPlainText() throws Exception { + + ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); + PrintStream printStream = new PrintStream(byteStream); + + StoryPrinter printer = new StoryPrinter(printStream); + printer.print(SimpleStory.class.getName()); + String result = byteStream.toString(); + + ensureThat(result, eq(SimpleStory.expectedDescription())); + } + +}
Modified: trunk/core/src/behaviour/org/jbehave/core/story/StoryRunnerBehaviour.java (640 => 641)
--- trunk/core/src/behaviour/org/jbehave/core/story/StoryRunnerBehaviour.java 2007-01-02 11:21:42 UTC (rev 640) +++ trunk/core/src/behaviour/org/jbehave/core/story/StoryRunnerBehaviour.java 2007-01-02 11:50:17 UTC (rev 641) @@ -17,7 +17,7 @@ public class StoryRunnerBehaviour extends UsingMiniMock { - public void shouldRunStoryAndOutputResults() throws Exception { + public void shouldSpecifyAndRunStoryAndOutputResults() throws Exception { final ByteArrayOutputStream buffer = new ByteArrayOutputStream(); PrintStream stream = new PrintStream(buffer);
Modified: trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java (640 => 641)
--- trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java 2007-01-02 11:21:42 UTC (rev 640) +++ trunk/core/src/behaviour/org/jbehave/core/story/renderer/PlainTextRendererBehaviour.java 2007-01-02 11:50:17 UTC (rev 641) @@ -13,10 +13,7 @@ import org.jbehave.core.mock.UsingMatchers; import org.jbehave.core.story.SimpleStory; import org.jbehave.core.story.domain.ScenarioDrivenStory; -import org.jbehave.core.util.CamelCaseConverter; - - /** * @author <a href="" PROTECTED]">Elizabeth Keogh</a> */ @@ -37,24 +34,7 @@ String result = byteStream.toString(); - StringBuffer expectedResult = new StringBuffer(); - expectedResult.append("Story: ").append(textOf(story)).append(NL + NL); - expectedResult.append("As a ").append(SimpleStory.ROLE).append(NL); - expectedResult.append("I want ").append(SimpleStory.FEATURE).append(NL); - expectedResult.append("So that ").append(SimpleStory.BENEFIT).append(NL + NL); - expectedResult.append("Scenario: ").append(textOf(new SimpleStory.PlainTextRendererWorks())).append(NL + NL); - expectedResult.append("Given ").append(textOf(new SimpleStory.EverythingCompiles())).append(NL); - expectedResult.append("When ").append(textOf(new SimpleStory.ICrossMyFingers())).append(NL); - expectedResult.append("Then ").append(textOf(new SimpleStory.PlainTextRendererShouldWork())).append(NL + NL); - - expectedResult.append("Scenario: ").append(textOf(new SimpleStory.PlainTextRendererStillWorks())).append(NL + NL); - expectedResult.append("Given ").append(textOf(new SimpleStory.PlainTextRendererWorks())).append(NL);; - expectedResult.append("and ").append(textOf(new SimpleStory.FirstScenarioRanWithoutFallingOver())).append(NL); - expectedResult.append("When ").append(textOf(new SimpleStory.IDoNothing())).append(NL); - expectedResult.append("Then ").append(textOf(new SimpleStory.PlainTextRendererShouldStillWork())).append(NL); - expectedResult.append("and ").append(textOf(new SimpleStory.BehaviourClassShouldNotFail())).append(NL); - - ensureThat(result, eq(expectedResult.toString())); + ensureThat(result, eq(SimpleStory.expectedDescription())); } public void shouldProvideComponentsWithCustomRenderingUsingStrings() { @@ -72,8 +52,4 @@ ensureThat(result, eq(expectedResult.toString())); } - - private String textOf(Object obj) { - return new CamelCaseConverter(obj).toPhrase(); - } } \ No newline at end of file
Modified: trunk/core/src/java/org/jbehave/core/story/StoryPrinter.java (640 => 641)
--- trunk/core/src/java/org/jbehave/core/story/StoryPrinter.java 2007-01-02 11:21:42 UTC (rev 640) +++ trunk/core/src/java/org/jbehave/core/story/StoryPrinter.java 2007-01-02 11:50:17 UTC (rev 641) @@ -6,6 +6,8 @@ * See license.txt for license details */ package org.jbehave.core.story; +import java.io.PrintStream; + import org.jbehave.core.story.domain.Story; import org.jbehave.core.story.renderer.PlainTextRenderer; @@ -20,18 +22,25 @@ public class StoryPrinter { private ClassLoader classLoader; + private final PrintStream stream; public StoryPrinter(){ - this(Thread.currentThread().getContextClassLoader()); + this(System.out); } + + public StoryPrinter(PrintStream stream) { + this(Thread.currentThread().getContextClassLoader(), stream); + } - public StoryPrinter(ClassLoader classLoader) { + private StoryPrinter(ClassLoader classLoader, PrintStream stream) { this.classLoader = classLoader; + this.stream = stream; } public void print(String storyClassName) throws InstantiationException, IllegalAccessException, ClassNotFoundException{ Story story = (Story) classLoader.loadClass(storyClassName).newInstance(); - story.narrateTo(new PlainTextRenderer(System.out)); + story.specify(); + story.narrateTo(new PlainTextRenderer(stream)); } public static void main(String[] args) {
To unsubscribe from this list please visit:
