public void Should_notify_method_exception()
        {
            var exception = new SingleException(33);
            var method = testClass.AddFailingTest("TestMethod1", exception);

            Run();

            Messages.OfTask(method.Task).AssertTaskException(exception);
        }
        public void Should_fail_class_if_any_methods_fail()
        {
            var exception = new SingleException(23);
            testClass.AddFailingTest("TestMethod1", exception);

            Run();

            Messages.OfTask(testClass.ClassTask).AssertTaskFinishedWithFailingChildren();
        }
        public void Should_notify_exception_before_method_finished()
        {
            var exception = new SingleException(23);
            var method = testClass.AddFailingTest("TestMethod1", exception);

            Run();

            Messages.OfTask(method.Task).AssertOrderedActions(ServerAction.TaskStarting, ServerAction.TaskFinished);
        }
        public void Should_notify_method_finished_with_errors()
        {
            var exception = new SingleException(23);
            var method = testClass.AddFailingTest("TestMethod1", exception);

            Run();

            Messages.OfTask(method.Task).AssertTaskFinished(exception.UserMessage, TaskResult.Exception);
        }
        public void Should_notify_output_for_failing_test()
        {
            const string expectedOutput = "This is some output";
            var exception = new SingleException(33);
            var method = testClass.AddFailingTest("TestMethod1", exception, expectedOutput);

            Run();

            Messages.OfTask(method.Task).AssertTaskOutput(expectedOutput);
        }
        public void Should_continue_running_tests_after_failing_test_method()
        {
            var exception = new SingleException(33);
            var method1 = testClass.AddFailingTest("TestMethod1", exception);
            var method2 = testClass.AddPassingTest("TestMethod2");

            Run();

            Messages.AssertOrderedSubsetWithSameTasks(new[]
                {
                    TaskMessage.TaskException(method1.Task, exception),
                    TaskMessage.TaskStarting(method2.Task)
                });
        }