public void Should_Output_Two_Inner_Exception_Upon_ToString() { // Arrange var validationMessages = new List<ValidationMessage> { new ValidationMessage {Message = "Message1", ParamName = "ParamName1"}, new ValidationMessage {Message = "Message2", ParamName = "ParamName2"} }; // Act var ex = new CompositeArgumentException(validationMessages); // Assert ex.ShouldNotBeNull(); var lines = ex.ToString().Split(new [] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); lines.Length.ShouldEqual(7); lines[0].ShouldEqual( "CertificateRepository.Exceptions.CompositeArgumentException: Exception of type 'CertificateRepository.Exceptions.CompositeArgumentException' was thrown."); lines[1].ShouldEqual(" ------ Inner Exception #1 ------"); lines[2].ShouldEqual("System.ArgumentException: Message1"); lines[3].ShouldEqual("Parameter name: ParamName1"); lines[4].ShouldEqual(" ------ Inner Exception #2 ------"); lines[5].ShouldEqual("System.ArgumentException: Message2"); lines[6].ShouldEqual("Parameter name: ParamName2"); }
public void Should_Initialize_InnerExceptions_With_One_ValidationMessage() { // Arrange var validationMessages = new List<ValidationMessage> { new ValidationMessage {Message = "Message1", ParamName = "ParamName1"}, }; // Act var ex = new CompositeArgumentException(validationMessages); // Assert ex.ShouldNotBeNull(); ex.InnerExceptions.ShouldNotBeNull(); ex.InnerExceptions.ShouldNotBeEmpty(); ex.InnerExceptions.First().Message.ShouldStartWith("Message1"); ex.InnerExceptions.First().ParamName.ShouldEqual("ParamName1"); }