Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
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);
        }