Пример #1
0
        public ActionResult SecurityQuestions(PasswordSecurityQuestionsModel model)
        {
            if (ModelState.IsValid)
            {
                var answerModel1 = new AnswerModel(model.Question1Id, model.Answer1);
                var answerModel2 = new AnswerModel(model.Question2Id, model.Answer2);
                var answerModel3 = new AnswerModel(model.Question3Id, model.Answer3);

                if (this.AnswersIsValid(model.UserId, answerModel1, answerModel2, answerModel3))
                {
                    TempData["UserId"] = model.UserId;
                    return(RedirectToAction("Change", "Password"));
                }
                else
                {
                    TempData["message"] = "One or more of the answers are wrong. Please try again.";
                    TempData["UserId"]  = model.UserId;
                    return(RedirectToAction("SecurityQuestions", "Password"));
                }
            }
            else
            {
                TempData["message"] = "Please correct the errors and try again.";
                return(this.View(model));
            }
        }
Пример #2
0
        public void WhenISubmitSecurityQuestionsPage_IfModelStateIsNotvalid_TheCorrectViewIsReturnedAndItContainsTheModel()
        {
            _controller.ModelState.AddModelError("Answer1", "Answer for question is required");

            PasswordSecurityQuestionsModel model = new PasswordSecurityQuestionsModel();

            var result = (ViewResult)this._controller.SecurityQuestions(model);

            result.Model.Should().BeOfType <PasswordSecurityQuestionsModel>();
            result.TempData["message"].ToString().ShouldBeEquivalentTo("Please correct the errors and try again.");
        }
Пример #3
0
        private PasswordSecurityQuestionsModel PreparePasswordSecurityQuestionsModel(string userId)
        {
            var questions = this._securityQuestionService.GetThreeRandomSecurityQuestions();

            var passwordSecurityQuestionsModel = new PasswordSecurityQuestionsModel(
                userId,
                questions[0].Id,
                questions[0].Question,
                questions[1].Id,
                questions[1].Question,
                questions[2].Id,
                questions[2].Question);

            return(passwordSecurityQuestionsModel);
        }
Пример #4
0
        public void WhenISubmitSecurityQuestionsPage_ModelStateIsvalidAndAnswersAreValid_TheCorrectviewIsTypeReturned()
        {
            PasswordSecurityQuestionsModel model = new PasswordSecurityQuestionsModel();

            model.UserId = Guid.NewGuid().ToString();

            this._securityAnswerService.Setup(
                x => x.SecurityAnswerIsValid(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(true);

            var result = this._controller.SecurityQuestions(model) as RedirectToRouteResult;

            this._securityAnswerService.Verify(
                x => x.SecurityAnswerIsValid(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.AtLeast(3));

            result.Should().NotBeNull();
            result.Should().BeOfType <RedirectToRouteResult>();
            result.RouteValues["controller"].Should().Be("Password");
            result.RouteValues["action"].Should().Be("Change");
        }