GetRecommendedLearningForSelfAssessment_does_not_return_resources_relating_to_unanswered_optional_competencies() { // Given GivenResourceForSelfAssessmentIsReturnedByLearningHubApi(); GivenGetLearningLogItemsReturnsAnItem(); GivenNotComparingToRoleRequirements(); A.CallTo( () => selfAssessmentDataService.GetSelfAssessmentResultsForDelegateSelfAssessmentCompetency( DelegateId, SelfAssessmentId, CompetencyId ) ).Returns(new List <SelfAssessmentResult>()); // When var result = (await recommendedLearningService.GetRecommendedLearningForSelfAssessment(SelfAssessmentId, DelegateId)) .recommendedResources.ToList(); // Then result.Should().BeEmpty(); A.CallTo( () => selfAssessmentDataService.GetCompetencyAssessmentQuestionRoleRequirements( A <int> ._, A <int> ._, A <int> ._, A <int> ._ ) ).MustNotHaveHappened(); }
GetRecommendedLearningForSelfAssessment_returns_correct_recommendation_score_for_resource_with_self_assessment_results( int relevanceResult, int confidenceResult, decimal expectedScore ) { // Given GivenResourceForSelfAssessmentIsReturnedByLearningHubApi(); GivenGetLearningLogItemsReturnsAnItem(); GivenNotComparingToRoleRequirements(); var assessmentResults = Builder <SelfAssessmentResult> .CreateListOfSize(2) .All() .With(r => r.SelfAssessmentId = SelfAssessmentId) .And(r => r.CandidateId = DelegateId) .And(r => r.CompetencyId = CompetencyId) .TheFirst(1) .With(r => r.AssessmentQuestionId = CompetencyAssessmentQuestionId) .And(r => r.Result = confidenceResult) .TheRest() .With(r => r.AssessmentQuestionId = RelevanceAssessmentQuestionId) .And(r => r.Result = relevanceResult) .Build(); A.CallTo( () => selfAssessmentDataService.GetSelfAssessmentResultsForDelegateSelfAssessmentCompetency( DelegateId, SelfAssessmentId, CompetencyId ) ).Returns(assessmentResults); var expectedResource = GetExpectedResource(true, false, LearningLogId, expectedScore); // When var result = (await recommendedLearningService.GetRecommendedLearningForSelfAssessment(SelfAssessmentId, DelegateId)) .ToList(); // Then result.Should().HaveCount(1); result.Single().Should().BeEquivalentTo(expectedResource); A.CallTo( () => selfAssessmentDataService.GetCompetencyAssessmentQuestionRoleRequirements( A <int> ._, A <int> ._ ) ).MustNotHaveHappened(); }
private decimal CalculateRelConValue( int competencyId, int selfAssessmentId, int delegateId, CompetencyResourceAssessmentQuestionParameter competencyResourceAssessmentQuestionParameter ) { var delegateResults = selfAssessmentDataService .GetSelfAssessmentResultsForDelegateSelfAssessmentCompetency( delegateId, selfAssessmentId, competencyId ).ToList(); var latestConfidenceResult = delegateResults .Where( dr => dr.AssessmentQuestionId == competencyResourceAssessmentQuestionParameter.AssessmentQuestionId ) .OrderByDescending(dr => dr.DateTime).FirstOrDefault(); var latestRelevanceResult = delegateResults .Where( dr => dr.AssessmentQuestionId == competencyResourceAssessmentQuestionParameter.RelevanceAssessmentQuestionId ) .OrderByDescending(dr => dr.DateTime).FirstOrDefault(); if (latestConfidenceResult != null && latestRelevanceResult != null) { return((latestRelevanceResult.Result - latestConfidenceResult.Result) * 10); } return(0); }
private bool AreDelegateAnswersWithinRangeToDisplayResource( List <CompetencyLearningResource> clrsForResource, List <CompetencyResourceAssessmentQuestionParameter> competencyResourceAssessmentQuestionParameters, int selfAssessmentId, int delegateId ) { foreach (var competencyLearningResource in clrsForResource) { var delegateResults = selfAssessmentDataService .GetSelfAssessmentResultsForDelegateSelfAssessmentCompetency( delegateId, selfAssessmentId, competencyLearningResource.CompetencyId ).ToList(); var competencyResourceAssessmentQuestionParametersForClr = competencyResourceAssessmentQuestionParameters.SingleOrDefault( qp => qp.CompetencyLearningResourceId == competencyLearningResource.Id ); if (competencyResourceAssessmentQuestionParametersForClr == null) { return(true); } var latestConfidenceResult = delegateResults .Where( dr => dr.AssessmentQuestionId == competencyResourceAssessmentQuestionParametersForClr.AssessmentQuestionId ) .OrderByDescending(dr => dr.DateTime).FirstOrDefault(); if (competencyResourceAssessmentQuestionParametersForClr.MinResultMatch <= latestConfidenceResult?.Result && latestConfidenceResult.Result <= competencyResourceAssessmentQuestionParametersForClr.MaxResultMatch) { return(true); } } return(false); }