Title: [1070] sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario: Added failure cause to scenario context to display stack trace.

Diff

Modified: sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioContext.java (1069 => 1070)

--- sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioContext.java	2009-02-08 17:04:03 UTC (rev 1069)
+++ sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioContext.java	2009-02-09 23:28:58 UTC (rev 1070)
@@ -2,6 +2,8 @@
 
 import static java.util.Arrays.asList;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -15,6 +17,7 @@
 	private String input;
 	private String output;
 	private List<String> messages;
+	private Throwable cause;
 
 	public ScenarioContext() {
 		this(EMPTY, EMPTY, EMPTY_LIST);
@@ -45,7 +48,7 @@
 
 	public void addMessage(String message) {
 		this.messages.add(message);
-	}	
+	}
 
 	public List<String> getMessages() {
 		return messages;
@@ -55,11 +58,21 @@
 		this.messages.clear();
 	}
 
+	public void setFailureCause(Throwable cause) {
+		this.cause = cause;
+	}
+
+	public String getFailureCauseAsString() {
+		StringWriter writer = new StringWriter();
+		if (cause != null) {
+			cause.printStackTrace(new PrintWriter(writer));
+		}
+		return writer.getBuffer().toString();
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
-	
-
 }

Modified: sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioController.java (1069 => 1070)

--- sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioController.java	2009-02-08 17:04:03 UTC (rev 1069)
+++ sandbox/jbehave-web/web-waffle/src/main/java/org/jbehave/web/waffle/controllers/ScenarioController.java	2009-02-09 23:28:58 UTC (rev 1070)
@@ -53,6 +53,7 @@
 				scenarioContext.clearMessages();
 				scenarioRunner.run(storyDefinition(), configuration, steps);
 			} catch (Throwable e) {
+				scenarioContext.setFailureCause(e);
 				scenarioContext.addMessage(e.getMessage());
 			}
 			scenarioContext.setOutput(outputStream.toString());

Modified: sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario/scenario.ftl (1069 => 1070)

--- sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario/scenario.ftl	2009-02-08 17:04:03 UTC (rev 1069)
+++ sandbox/jbehave-web/web-waffle/src/main/webapp/ftl/scenario/scenario.ftl	2009-02-09 23:28:58 UTC (rev 1070)
@@ -15,7 +15,7 @@
                 <legend><@i.messageFor "scenarioInput" "Scenario Input"/></legend>
 		        <p>
                 <p>
-                	<@w.textarea "scenarioContext.input" "${scenarioContext.input}" "rows='20' cols='60'"/>
+                	<@w.textarea "scenarioContext.input" "${scenarioContext.input}" "rows='20' cols='70'"/>
                 </p>
                 <a href="" "runScenario" "Run Scenario"/></a> 
             </fieldset>
@@ -26,7 +26,7 @@
            <fieldset>
                 <legend><@i.messageFor "scenarioOutput" "Scenario Output"/></legend>
                 <p>
-                    <@w.textarea "scenarioContext.output" "${scenarioContext.output}" "rows='20' cols='60' disabled='true'"/>
+                    <@w.textarea "scenarioContext.output" "${scenarioContext.output}" "rows='20' cols='70' disabled='true'"/>
                 </p>
             </fieldset>
          </div>        
@@ -40,10 +40,22 @@
 	            <#list messages as message>
 	                <p>${message}</p>
 	            </#list>
-	         </table>           
+	         </fieldset>           
          </div>
 		</#if>
 		
+		<#assign failureCause = scenarioContext.failureCauseAsString />
+        <#if (failureCause.length() > 0) >
+        <div id="failureCause">  
+	 		 <fieldset>
+	             <legend><@i.messageFor "failureCause" "Failure Cause"/></legend>
+				<p>
+					<@w.textarea "failureCause" "${failureCause}" "rows='35' cols='70' disabled='true'"/>
+				</p>
+	         </fieldset>           
+         </div>
+		</#if>
+
          
     </form>
 </div>


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to