public void ToString_WithSingleInnerException_ReturnsExpectedText() { // Arrange Exception innerException = new InvalidOperationException("bad, bad things have happened."); var exceptionUnderTest = new CompositeException("Errors have occurred.", innerException); var expectedBeginningOfText = "CuttingEdge.Logging.CompositeException: Errors have occurred. ---> " + "System.InvalidOperationException: bad, bad things have happened."; var expectedEndingOfText = @"---> (Inner Exception #0) " + "System.InvalidOperationException: bad, bad things have happened.<---" + Environment.NewLine; // Act var actualText = exceptionUnderTest.ToString(); // Arrange Assert.IsTrue(actualText.StartsWith(expectedBeginningOfText)); Assert.IsTrue(actualText.EndsWith(expectedEndingOfText)); }