public void TheAssertionIsLoggedAndCapturedButExecutionEnds()
            {
                StubAssertionFailure failure1 = new StubAssertionFailure();
                StubAssertionFailure failure2 = new StubAssertionFailure();
                bool completed = false;

                AssertionFailure[] failures = AssertionContext.CurrentContext.CaptureFailures(delegate
                {
                    AssertionContext.CurrentContext.SubmitFailure(failure1);
                    AssertionContext.CurrentContext.SubmitFailure(failure2);
                    completed = true;
                }, AssertionFailureBehavior.LogAndThrow, false);

                Assert.AreElementsEqual(new[] { failure1 }, failures);
                Assert.IsTrue(failure1.WasWriteToCalled);
                Assert.IsFalse(failure2.WasWriteToCalled);
                Assert.IsFalse(completed);
            }
            public void NothingHappens()
            {
                StubAssertionFailure failure1 = new StubAssertionFailure();
                StubAssertionFailure failure2 = new StubAssertionFailure();
                bool completed = false;

                AssertionFailure[] failures = AssertionContext.CurrentContext.CaptureFailures(delegate
                {
                    AssertionContext.CurrentContext.SubmitFailure(failure1);
                    AssertionContext.CurrentContext.SubmitFailure(failure2);
                    completed = true;
                }, AssertionFailureBehavior.Discard, false);

                Assert.IsEmpty(failures);
                Assert.IsFalse(failure1.WasWriteToCalled);
                Assert.IsFalse(failure2.WasWriteToCalled);
                Assert.IsTrue(completed);
            }