- Revision
- 1073
- Author
- mauro
- Date
- 2009-02-10 02:56:31 -0600 (Tue, 10 Feb 2009)
Log Message
Autogenerated failure messages from failure cause.
Modified Paths
- sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioContext.java
- sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioController.java
- sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario/scenario.ftl
- sandbox/jbehave-web/web-waffle/src/test/java/org/jbehave/web/waffle/controllers/ScenarioControllerTest.java
Diff
Modified: sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioContext.java (1072 => 1073)
--- sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioContext.java 2009-02-09 23:56:13 UTC (rev 1072) +++ sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioContext.java 2009-02-10 08:56:31 UTC (rev 1073) @@ -46,16 +46,20 @@ this.output = output; } - public void addMessage(String message) { - this.messages.add(message); - } - - public List<String> getMessages() { + public List<String> getFailureMessages() { + messages.clear(); + addFailureMessage(cause); return messages; } - public void clearMessages() { - this.messages.clear(); + private void addFailureMessage(Throwable cause) { + if ( cause != null ){ + if ( cause.getMessage() != null ){ + messages.add(cause.getMessage()); + } + // recurse + addFailureMessage(cause.getCause()); + } } public void clearFailureCause() { @@ -66,7 +70,7 @@ this.cause = cause; } - public String getFailureCauseAsString() { + public String getFailureStackTrace() { StringWriter writer = new StringWriter(); if (cause != null) { cause.printStackTrace(new PrintWriter(writer));
Modified: sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioController.java (1072 => 1073)
--- sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioController.java 2009-02-09 23:56:13 UTC (rev 1072) +++ sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioController.java 2009-02-10 08:56:31 UTC (rev 1073) @@ -51,11 +51,9 @@ try { outputStream.reset(); scenarioContext.clearFailureCause(); - scenarioContext.clearMessages(); scenarioRunner.run(storyDefinition(), configuration, steps); } catch (Throwable e) { scenarioContext.runFailedFor(e); - scenarioContext.addMessage(e.getMessage()); } scenarioContext.setOutput(outputStream.toString()); }
Modified: sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario/scenario.ftl (1072 => 1073)
--- sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario/scenario.ftl 2009-02-09 23:56:13 UTC (rev 1072) +++ sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario/scenario.ftl 2009-02-10 08:56:31 UTC (rev 1073) @@ -32,25 +32,25 @@ </div> </#if> - <#assign messages = scenarioContext.messages /> - <#if (messages.size() > 0) > - <div id="scenarioMessages"> + <#assign failureMessages = scenarioContext.failureMessages /> + <#if (failureMessages.size() > 0) > + <div id="scenariofailureMessages"> <fieldset> - <legend><@i.messageFor "scenarioMessages" "Scenario Messages"/></legend> - <#list messages as message> + <legend><@i.messageFor "scenariofailureMessages" "Scenario Failure Messages"/></legend> + <#list failureMessages as message> <p>${message}</p> </#list> </fieldset> </div> </#if> - <#assign failureCause = scenarioContext.failureCauseAsString /> - <#if (failureCause.length() > 0) > - <div id="failureCause"> + <#assign failureStackTrace = scenarioContext.failureStackTrace /> + <#if (failureStackTrace.length() > 0) > + <div id="failureStackTrace"> <fieldset> - <legend><@i.messageFor "failureCause" "Failure Cause"/></legend> + <legend><@i.messageFor "failureStackTrace" "Failure Stack Trace"/></legend> <p> - <@w.textarea "failureCause" "${failureCause}" "rows='35' cols='70' disabled='true'"/> + <@w.textarea "failureStackTrace" "${failureStackTrace}" "rows='35' cols='70' disabled='true'"/> </p> </fieldset> </div>
Modified: sandbox/jbehave-web/web-waffle/src/test/java/org/jbehave/web/waffle/controllers/ScenarioControllerTest.java (1072 => 1073)
--- sandbox/jbehave-web/web-waffle/src/test/java/org/jbehave/web/waffle/controllers/ScenarioControllerTest.java 2009-02-09 23:56:13 UTC (rev 1072) +++ sandbox/jbehave-web/web-waffle/src/test/java/org/jbehave/web/waffle/controllers/ScenarioControllerTest.java 2009-02-10 08:56:31 UTC (rev 1073) @@ -37,8 +37,8 @@ controller.getScenarioContext().setInput(scenarioInput); controller.run(); assertEquals(scenarioOutput, controller.getScenarioContext().getOutput().trim()); - assertEquals(0, controller.getScenarioContext().getMessages().size()); - assertEquals("", controller.getScenarioContext().getFailureCauseAsString()); + assertEquals(0, controller.getScenarioContext().getFailureMessages().size()); + assertEquals("", controller.getScenarioContext().getFailureStackTrace()); } @Test @@ -57,8 +57,8 @@ controller.getScenarioContext().setInput(scenarioInput); controller.run(); assertEquals(scenarioOutput, controller.getScenarioContext().getOutput().trim()); - assertEquals(asList("Test failed"), controller.getScenarioContext().getMessages()); - assertTrue(controller.getScenarioContext().getFailureCauseAsString().startsWith("java.lang.RuntimeException: Test failed")); + assertEquals(asList("Test failed"), controller.getScenarioContext().getFailureMessages()); + assertTrue(controller.getScenarioContext().getFailureStackTrace().startsWith("java.lang.RuntimeException: Test failed")); } public static class MySteps extends Steps {
To unsubscribe from this list please visit: