/// <summary>
        /// Formats an execution result.
        /// </summary>
        /// <param name="executionResult">The execution result to process.</param>
        /// <param name="depth">The current formatting depth.</param>
        private void Render(ExecutionResult executionResult, int depth)
        {
            // Input validation
            Ensure.That(executionResult, "executionResult").IsNotNull();
            Ensure.That(0 <= depth, "positive depth").IsTrue();

            // Append current execution result to the builder
            writer.WriteLine(string.Format("{0}[{1}] {2}", new string('\t', depth), executionResult.Status, executionResult.Message));

            // Execute the formatting for all sub result
            foreach (ExecutionResult subExecutionResult in executionResult.BlockingSubExecutionResults)
            {
                Render(subExecutionResult, depth + 1);
            }
        }
 /// <summary>
 /// Formats an execution result.
 /// </summary>
 /// <param name="executionResult">The execution result to process.</param>
 /// <returns>The result formatted as a string.</returns>
 public void Render(ExecutionResult executionResult)
 {
     Render(executionResult, 0);
 }