public void Get_diagnostic_assessment_should_return_diagnostic_assessment_from_data_service() { // Given var diagnosticAssessment = DiagnosticAssessmentTestHelper.CreateDefaultDiagnosticAssessment(); A.CallTo(() => diagnosticAssessmentDataService.GetDiagnosticAssessment(CustomisationId, CandidateId, SectionId)) .Returns(diagnosticAssessment); // When var result = diagnosticAssessmentService.GetDiagnosticAssessment(CustomisationId, CandidateId, SectionId); // Then result.Should().BeEquivalentTo(diagnosticAssessment); }
public IActionResult Diagnostic(int customisationId, int sectionId) { var candidateId = User.GetCandidateIdKnownNotNull(); var centreId = User.GetCentreId(); var diagnosticAssessment = diagnosticAssessmentService.GetDiagnosticAssessment(customisationId, candidateId, sectionId); if (diagnosticAssessment == null) { logger.LogError( "Redirecting to 404 as section/centre id was not found. " + $"Candidate id: {candidateId}, customisation id: {customisationId}, " + $"centre id: {centreId.ToString() ?? "null"}, section id: {sectionId}"); return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 404 })); } if (!String.IsNullOrEmpty(diagnosticAssessment.Password) && !diagnosticAssessment.PasswordSubmitted) { return(RedirectToAction("CoursePassword", "LearningMenu", new { customisationId })); } var progressId = courseContentService.GetOrCreateProgressId(candidateId, customisationId, centreId); if (progressId == null) { logger.LogError( "Redirecting to 404 as no progress id was returned. " + $"Candidate id: {candidateId}, customisation id: {customisationId}, centre id: {centreId}"); return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 404 })); } sessionService.StartOrUpdateDelegateSession(candidateId, customisationId, HttpContext.Session); courseContentService.UpdateProgress(progressId.Value); var model = new DiagnosticAssessmentViewModel(diagnosticAssessment, customisationId, sectionId); return(View("Diagnostic/Diagnostic", model)); }