public async Task <IActionResult> Index(FilterQuestionIndexRequestViewModel viewModel) { if (viewModel == null) { return(BadRequest()); } var hasSessionId = await HasSessionId().ConfigureAwait(false); if (!hasSessionId) { return(RedirectToRoot()); } var assessment = await apiService.GetAssessment().ConfigureAwait(false); if (!assessment.IsComplete && !assessment.IsFilterAssessment) { return(RedirectTo("assessment/return")); } if (viewModel.QuestionNumber == 0) { var filterAssessment = await apiService.FilterAssessment(viewModel.JobCategoryName).ConfigureAwait(false); return(RedirectTo($"{viewModel.AssessmentType}/filterquestions/{viewModel.JobCategoryName}/{filterAssessment.QuestionNumber}")); } var response = await GetQuestion(viewModel.JobCategoryName, viewModel.QuestionNumber).ConfigureAwait(false); return(View(response)); }
public async Task FilterAssessmentCallsFilterAssessmentForCurrentSession() { var sessionId = "session1"; var jobCategory = "sports"; var filterResponse = new FilterAssessmentResponse() { SessionId = sessionId }; A.CallTo(() => sessionService.GetSessionId()).Returns(sessionId); A.CallTo(() => assessmentApiService.FilterAssessment(sessionId, jobCategory)).Returns(filterResponse); var response = await assessmentService.FilterAssessment(jobCategory); A.CallTo(() => assessmentApiService.FilterAssessment(sessionId, jobCategory)).MustHaveHappenedOnceExactly(); Assert.Equal(sessionId, response.SessionId); }
public async Task WhenNotAnsweredReturnsView() { var viewModel = new FilterQuestionIndexRequestViewModel() { JobCategoryName = "TestCategory", QuestionNumber = 0, AssessmentType = "short" }; A.CallTo(() => sessionService.HasValidSession()).Returns(true); A.CallTo(() => assessmentService.FilterAssessment(A <string> .Ignored)).Returns(new FilterAssessmentResponse() { QuestionNumber = 1 }); var actionResponse = await controller.Index(viewModel).ConfigureAwait(false); Assert.IsType <RedirectResult>(actionResponse); var redirectResult = actionResponse as RedirectResult; Assert.Equal($"~/{RouteName.Prefix}/{viewModel.AssessmentType}/filterquestions/{viewModel.JobCategoryName}/1", redirectResult.Url); }