public void WriteToBareBones()
        {
            AssertionFailure failure = new AssertionFailureBuilder("Description")
                .SetStackTrace(null)
                .ToAssertionFailure();
            TestLog.Write(failure);

            StringMarkupDocumentWriter writer = new StringMarkupDocumentWriter(true);
            failure.WriteTo(writer.Failures);

            Assert.AreEqual("[Marker \'AssertionFailure\'][Section \'Description\']\n[End]\n[End]", writer.ToString());
        }
        public void WriteToEverything()
        {
            AssertionFailure failure = new AssertionFailureBuilder("Description")
                .SetMessage("Message goes here")
                .SetStackTrace(new StackTraceData("Stack goes here"))
                .AddRawExpectedValue("Expected value")
                .AddRawActualValue("Actual value")
                .AddRawLabeledValue("Very Long Label That Will Not Be Padded", "")
                .AddRawLabeledValue("x", 42)
                .AddException(new Exception("Boom"))
                .AddException(new Exception("Kaput"))
                .AddInnerFailure(new AssertionFailureBuilder("Inner").SetStackTrace(null).ToAssertionFailure())
                .ToAssertionFailure();
            TestLog.Write(failure);

            StringMarkupDocumentWriter writer = new StringMarkupDocumentWriter(true);
            failure.WriteTo(writer.Failures);

            Assert.AreEqual("[Marker \'AssertionFailure\'][Section \'Description\']\nMessage goes here\n\n[Marker \'Monospace\'][Marker \'Label\']Expected Value : [End]\"Expected value\"\n[Marker \'Label\']Actual Value   : [End]\"Actual value\"\n[Marker \'Label\']Very Long Label That Will Not Be Padded : [End]\"\"\n[Marker \'Label\']x              : [End]42\n[End]\n[Marker \'Exception\'][Marker \'ExceptionType\']System.Exception[End]: [Marker \'ExceptionMessage\']Boom[End][End]\n\n[Marker \'Exception\'][Marker \'ExceptionType\']System.Exception[End]: [Marker \'ExceptionMessage\']Kaput[End][End]\n\n[Marker \'StackTrace\']Stack goes here[End]\n[Marker \'AssertionFailure\'][Section \'Inner\']\n[End]\n[End][End]\n[End]", writer.ToString());
        }
 public void WriteToThrowsIfArgumentIsNull()
 {
     AssertionFailure failure = new AssertionFailureBuilder("Description").ToAssertionFailure();
     Assert.Throws<ArgumentNullException>(() => failure.WriteTo(null));
 }