예제 #1
0
        public void SumInvalidModel()
        {
            var model = new BigNumbersSumViewModel()
            {
                Number1 = "1d",
                Number2 = "d2",
            };
            var    loggerMock    = new Mock <ILogger>();
            string loggedMessage = null;

            loggerMock.Setup(l => l.Log(It.IsAny <LogLevel>(), It.IsAny <string>()))
            .Callback <LogLevel, string>((level, message) =>
            {
                loggedMessage = message;
            });
            var controller = new SumController(loggerMock.Object);

            controller.ViewData.ModelState.AddModelError("Key", "ErrorMessage");

            ViewResult result = controller.Sum(model) as ViewResult;

            Assert.IsNotNull(result);

            Assert.AreEqual(null, ((BigNumbersSumViewModel)result.Model).Result);

            Assert.AreEqual(null, loggedMessage);
        }
예제 #2
0
        public void Sum()
        {
            var model = new BigNumbersSumViewModel()
            {
                Number1 = "1",
                Number2 = "2",
            };
            var    loggerMock    = new Mock <ILogger>();
            string loggedMessage = null;

            loggerMock.Setup(l => l.Log(It.IsAny <LogLevel>(), It.IsAny <string>()))
            .Callback <LogLevel, string>((level, message) =>
            {
                loggedMessage = message;
            });
            var controller = new SumController(loggerMock.Object);

            ViewResult result = controller.Sum(model) as ViewResult;

            Assert.IsNotNull(result);

            Assert.AreEqual("3", model.Result);

            Assert.AreEqual("1, 2, 3", loggedMessage);
        }
        public void EmptyNumbers()
        {
            var model           = new BigNumbersSumViewModel();
            var validationResut = new List <ValidationResult>();
            var result          = Validator.TryValidateObject(model, new ValidationContext(model, null, null),
                                                              validationResut, true);

            Assert.IsTrue(validationResut.Any(vr => vr.ErrorMessage == "The Number1 field is required."));
            Assert.IsTrue(validationResut.Any(vr => vr.ErrorMessage == "The Number2 field is required."));
        }
예제 #4
0
        public ActionResult Sum(BigNumbersSumViewModel model)
        {
            if (ModelState.IsValid)
            {
                // Model aready validated, no additional validation needed
                model.Result = BigNumbersHelper.Sum(model.Number1, model.Number2);
                logger.Log(LogLevel.Info, $"{model.Number1}, {model.Number2}, {model.Result}");
            }

            return(View(model));
        }
        public void IncorrectNumbers()
        {
            var model = new BigNumbersSumViewModel()
            {
                Number2 = "2d",
                Number1 = "4.3"
            };
            var validationResut = new List <ValidationResult>();
            var result          = Validator.TryValidateObject(model, new ValidationContext(model, null, null),
                                                              validationResut, true);

            Assert.IsTrue(validationResut.Any(vr => vr.ErrorMessage == "Number 1 is not a number"));
            Assert.IsTrue(validationResut.Any(vr => vr.ErrorMessage == "Number 2 is not a number"));
        }