public void SelfAssessmentOverview_Should_Have_Previous_Competency_Number_One_When_Empty() { // Given var selfAssessment = SelfAssessmentHelper.CreateDefaultSelfAssessment(); var competencies = new List <Competency>(); var supervisorSignOffs = new List <SupervisorSignOff>(); var expectedModel = new SelfAssessmentOverviewViewModel { SelfAssessment = selfAssessment, CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup), PreviousCompetencyNumber = 1, SupervisorSignOffs = supervisorSignOffs, SearchViewModel = new SearchSelfAssessmentOvervieviewViewModel(null, SelfAssessmentId, selfAssessment.Vocabulary, false, false, null), AllQuestionsVerifiedOrNotRequired = true }; A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId)) .Returns(selfAssessment); A.CallTo(() => selfAssessmentService.GetMostRecentResults(selfAssessment.Id, CandidateId)) .Returns(competencies); // When var result = controller.SelfAssessmentOverview(SelfAssessmentId, selfAssessment.Vocabulary); // Then result.Should().BeViewResult() .WithViewName("SelfAssessments/SelfAssessmentOverview") .Model.Should().BeEquivalentTo(expectedModel); }
public void SelfAssessmentOverview_Should_Return_View() { // Given var selfAssessment = SelfAssessmentHelper.CreateDefaultSelfAssessment(); var competencies = new List <Competency> { new Competency { CompetencyGroup = "A" }, new Competency { CompetencyGroup = "A" }, }; var supervisorSignOffs = new List <SupervisorSignOff>(); var expectedModel = new SelfAssessmentOverviewViewModel { SelfAssessment = selfAssessment, CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup), PreviousCompetencyNumber = 2, SupervisorSignOffs = supervisorSignOffs, }; A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId)) .Returns(selfAssessment); A.CallTo(() => selfAssessmentService.GetMostRecentResults(selfAssessment.Id, CandidateId)) .Returns(competencies); // When var result = controller.SelfAssessmentOverview(SelfAssessmentId, selfAssessment.Vocabulary); // Then result.Should().BeViewResult() .WithViewName("SelfAssessments/SelfAssessmentOverview") .Model.Should().BeEquivalentTo(expectedModel); }
public IActionResult SelfAssessmentOverview( int selfAssessmentId, string vocabulary, int?competencyGroupId = null ) { var candidateId = User.GetCandidateIdKnownNotNull(); var destUrl = $"/LearningPortal/SelfAssessment/{selfAssessmentId}/{vocabulary}"; selfAssessmentService.SetBookmark(selfAssessmentId, candidateId, destUrl); var assessment = selfAssessmentService.GetSelfAssessmentForCandidateById(candidateId, selfAssessmentId); if (assessment == null) { logger.LogWarning( $"Attempt to display self assessment overview for candidate {candidateId} with no self assessment" ); return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 })); } var optionalCompetencies = selfAssessmentService.GetCandidateAssessmentOptionalCompetencies(selfAssessmentId, candidateId); selfAssessmentService.UpdateLastAccessed(assessment.Id, candidateId); var supervisorSignOffs = selfAssessmentService.GetSupervisorSignOffsForCandidateAssessment(selfAssessmentId, candidateId); var competencies = selfAssessmentService.GetMostRecentResults(assessment.Id, candidateId).ToList(); foreach (var competency in competencies) { competency.QuestionLabel = assessment.QuestionLabel; foreach (var assessmentQuestion in competency.AssessmentQuestions) { if (assessmentQuestion.AssessmentQuestionInputTypeID != 2) { assessmentQuestion.LevelDescriptors = selfAssessmentService .GetLevelDescriptorsForAssessmentQuestion( assessmentQuestion.Id, assessmentQuestion.MinValue, assessmentQuestion.MaxValue, assessmentQuestion.MinValue == 0 ).ToList(); } } } var model = new SelfAssessmentOverviewViewModel { SelfAssessment = assessment, CompetencyGroups = competencies.GroupBy(competency => competency.CompetencyGroup), PreviousCompetencyNumber = Math.Max(competencies.Count(), 1), NumberOfOptionalCompetencies = optionalCompetencies.Count(), SupervisorSignOffs = supervisorSignOffs, }; ViewBag.SupervisorSelfAssessmentReview = assessment.SupervisorSelfAssessmentReview; return(View("SelfAssessments/SelfAssessmentOverview", model)); }