Esempio n. 1
0
        public async Task NullViewModelReturnsBadRequest()
        {
            AssessmentEmailPostRequest viewModel = null;
            var actionResponse = await AssessmentController.Email(viewModel).ConfigureAwait(false);

            Assert.IsType <BadRequestResult>(actionResponse);
        }
Esempio n. 2
0
        public async Task WhenSessionExistsAndModelStateIsNotValidReturnsView()
        {
            var assessmentEmailPostRequest = new AssessmentEmailPostRequest();

            A.CallTo(() => Session.HasValidSession()).Returns(true);
            AssessmentController.ModelState.AddModelError("Key1", "Some Error");

            var actionResponse = await AssessmentController.Email(assessmentEmailPostRequest).ConfigureAwait(false);

            Assert.IsType <ViewResult>(actionResponse);
        }
        public async Task <IActionResult> Email()
        {
            var hasSessionId = await HasSessionId().ConfigureAwait(false);

            if (!hasSessionId)
            {
                return(RedirectToRoot());
            }

            var viewReponse = new AssessmentEmailPostRequest();

            this.logService.LogInformation($"{nameof(this.Email)} generated the model and ready to pass to the view");

            return(View(viewReponse));
        }
Esempio n. 4
0
        public async Task WhenModelStateIsInvalidRedirectsToView()
        {
            AssessmentController.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext(),
            };
            var sendEmailResponse = new SendEmailResponse()
            {
                IsSuccess = false
            };
            var viewModel = new AssessmentEmailPostRequest()
            {
                Email = "*****@*****.**"
            };

            A.CallTo(() => ApiService.SendEmail(A <string> .Ignored, viewModel.Email)).Returns(sendEmailResponse);

            var actionResponse = await AssessmentController.Email(viewModel).ConfigureAwait(false);

            Assert.IsType <ViewResult>(actionResponse);
        }
        public async Task <IActionResult> Email(AssessmentEmailPostRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                var viewReponse = new AssessmentEmailPostRequest()
                {
                    Email = request.Email
                };
                return(View(viewReponse));
            }

            var emailResponse = await apiService.SendEmail(notifyOptions.ReturnUrl, request.Email).ConfigureAwait(false);

            if (emailResponse.IsSuccess)
            {
                if (TempData != null)
                {
                    TempData["SentEmail"] = request.Email;
                }

                return(RedirectTo("assessment/emailsent"));
            }
            else
            {
                ModelState.AddModelError("Email", "There was a problem sending email");
                var viewReponse = new AssessmentEmailPostRequest()
                {
                    Email = request.Email
                };
                return(View(viewReponse));
            }
        }
Esempio n. 6
0
        public async Task WhenModelStateIsValidRedirectsToView()
        {
            AssessmentController.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext(),
            };
            var sendEmailResponse = new SendEmailResponse()
            {
                IsSuccess = true
            };
            var viewModel = new AssessmentEmailPostRequest()
            {
                Email = "*****@*****.**"
            };

            A.CallTo(() => ApiService.SendEmail(A <string> .Ignored, viewModel.Email)).Returns(sendEmailResponse);

            var actionResponse = await AssessmentController.Email(viewModel).ConfigureAwait(false);

            Assert.IsType <RedirectResult>(actionResponse);
            var redirectResult = actionResponse as RedirectResult;

            Assert.Equal($"~/{RouteName.Prefix}/assessment/emailsent", redirectResult.Url);
        }