示例#1
0
        public void EnsureIsValid_InvalidModel_ThrowsExceptionWithErrorMessage()
        {
            Mock <IValidatable> mockValidatable = new Mock <IValidatable>();

            mockValidatable.Setup(m => m.IsValid()).Returns(false);
            mockValidatable.Setup(m => m.Errors).Returns(new List <Error>()
            {
                new Error("All gone wrong", "Technical failure", new Exception("Exceptional")),
                new Error("All gone more wrong", "Further technical failure", new Exception("Less exceptional"))
            });
            IValidatable mockModel = mockValidatable.Object;

            try
            {
                mockModel.EnsureIsValid();
                Assert.Fail("ArgumentException should have been thrown.");
            }
            catch (ArgumentException ex)
            {
                const string expectedMessage = @"Supplied model is invalid. Error(s):
All gone wrong
Technical Details: Technical failure
Exception Details: System.Exception: Exceptional

All gone more wrong
Technical Details: Further technical failure
Exception Details: System.Exception: Less exceptional";
                Assert.AreEqual(expectedMessage, ex.Message);
            }
        }
示例#2
0
        public void EnsureIsValid_ValidModel_ReturnsModel()
        {
            Mock <IValidatable> mockValidatable = new Mock <IValidatable>();

            mockValidatable.Setup(m => m.IsValid()).Returns(true);
            IValidatable mockModel = mockValidatable.Object;
            IValidatable?result    = mockModel.EnsureIsValid();

            Assert.AreSame(mockModel, result);
        }
示例#3
0
        public void EnsureIsValid_InvalidModel_ThrowsExceptionWithSpecifiedParamName()
        {
            Mock <IValidatable> mockValidatable = new Mock <IValidatable>();

            mockValidatable.Setup(m => m.IsValid()).Returns(false);
            IValidatable mockModel = mockValidatable.Object;

            try
            {
                mockModel.EnsureIsValid(nameof(mockModel));
                Assert.Fail("ArgumentException should have been thrown.");
            }
            catch (ArgumentException ex)
            {
                Assert.AreEqual(nameof(mockModel), ex.ParamName);
            }
        }
示例#4
0
        public void EnsureIsValid_InvalidModel_ThrowsException()
        {
            Mock <IValidatable> mockValidatable = new Mock <IValidatable>();

            mockValidatable.Setup(m => m.IsValid()).Returns(false);
            IValidatable mockModel = mockValidatable.Object;

            try
            {
                mockModel.EnsureIsValid();
                Assert.Fail("ArgumentException should have been thrown.");
            }
            catch (ArgumentException ex)
            {
                Assert.AreEqual("Supplied model is invalid.", ex.Message);
            }
        }