public async Task <IActionResult> LoadSession(TestLoadSessionRequestViewModel viewModel) { if (viewModel == null) { return(BadRequest()); } if (!ModelState.IsValid) { var responseViewModel = new TestLoadSessionResponseViewModel() { SessionId = viewModel.SessionId }; return(View(responseViewModel)); } var result = await apiService.ReloadUsingSessionId(viewModel.SessionId).ConfigureAwait(false); if (result) { return(RedirectTo("assessment/short/1")); } else { ModelState.AddModelError("SessionId", "SessionId is not valid"); var responseViewModel = new TestLoadSessionResponseViewModel() { SessionId = viewModel.SessionId }; this.logService.LogInformation($"{nameof(this.LoadSession)} generated the model and ready to pass to the view"); return(View(responseViewModel)); } }
public async Task NullModelReturnsBadRequest() { TestLoadSessionRequestViewModel viewModel = null; var actionResponse = await controller.LoadSession(viewModel).ConfigureAwait(false); Assert.IsType <BadRequestResult>(actionResponse); }
public async Task WhenAssessmentCannotBeFoundReturnsViewResult() { var viewModel = new TestLoadSessionRequestViewModel(); A.CallTo(() => assessmentService.ReloadUsingSessionId(viewModel.SessionId)).Returns(false); var actionResponse = await controller.LoadSession(viewModel).ConfigureAwait(false); Assert.IsType <ViewResult>(actionResponse); }
public async Task WhenModelStateIsInvalidReturnsViewResult() { var viewModel = new TestLoadSessionRequestViewModel(); controller.ModelState.AddModelError("some error key", "some error message"); var actionResponse = await controller.LoadSession(viewModel).ConfigureAwait(false); Assert.IsType <ViewResult>(actionResponse); }
public async Task WhenAssessmentIsLoadedRedirectsToFirstQuestionOnAssessment() { var viewModel = new TestLoadSessionRequestViewModel(); A.CallTo(() => assessmentService.ReloadUsingSessionId(viewModel.SessionId)).Returns(true); var actionResponse = await controller.LoadSession(viewModel).ConfigureAwait(false); Assert.IsType <RedirectResult>(actionResponse); var redirectResult = actionResponse as RedirectResult; Assert.Equal($"~/{RouteName.Prefix}/assessment/short/1", redirectResult.Url); }