Title: [1073] sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario: Autogenerated failure messages from failure cause.

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:

http://xircles.codehaus.org/manage_email

Reply via email to