public void InsertLearningLogItemCompetencies_inserts_expected_record()
        {
            using var transaction = new TransactionScope();
            try
            {
                // Given
                const int competencyId   = 1;
                const int learningLogId  = 2;
                var       associatedDate = new DateTime(2021, 11, 1);

                // When
                service.InsertLearningLogItemCompetencies(learningLogId, competencyId, associatedDate);
                var result = learningLogItemsTestHelper.SelectLearningLogItemCompetency();

                // Then
                using (new AssertionScope())
                {
                    result.Should().NotBeNull();
                    result !.CompetencyId.Should().Be(competencyId);
                    result.LearningLogItemId.Should().Be(learningLogId);
                    result.AssociatedDate.Should().Be(associatedDate);
                }
            }
            finally
            {
                transaction.Dispose();
            }
        }
コード例 #2
0
        public async Task AddResourceToActionPlan(int learningResourceReferenceId, int delegateId, int selfAssessmentId)
        {
            var learningHubResourceReferenceId =
                learningResourceReferenceDataService.GetLearningHubResourceReferenceById(learningResourceReferenceId);

            var competenciesForResource =
                competencyLearningResourcesDataService.GetCompetencyIdsByLearningResourceReferenceId(
                    learningResourceReferenceId
                    );

            var selfAssessmentCompetencies =
                selfAssessmentDataService.GetCompetencyIdsForSelfAssessment(selfAssessmentId);

            var learningLogCompetenciesToAdd =
                competenciesForResource.Where(id => selfAssessmentCompetencies.Contains(id));

            var addedDate = clockService.UtcNow;

            var resource = await learningHubApiClient.GetResourceByReferenceId(learningHubResourceReferenceId);

            using var transaction = new TransactionScope();

            var learningLogItemId = learningLogItemsDataService.InsertLearningLogItem(
                delegateId,
                addedDate,
                resource.Title,
                resource.Link,
                learningResourceReferenceId
                );

            learningLogItemsDataService.InsertCandidateAssessmentLearningLogItem(selfAssessmentId, learningLogItemId);

            foreach (var competencyId in learningLogCompetenciesToAdd)
            {
                learningLogItemsDataService.InsertLearningLogItemCompetencies(
                    learningLogItemId,
                    competencyId,
                    addedDate
                    );
            }

            transaction.Complete();
        }
コード例 #3
0
        public void AddResourceToActionPlan_calls_expected_insert_data_service_methods()
        {
            // Given
            const int    learningResourceReferenceId = 1;
            const int    delegateId            = 2;
            const int    selfAssessmentId      = 3;
            const int    candidateAssessmentId = 4;
            const string resourceName          = "Activity";
            const string resourceLink          = "www.test.com";
            const int    learningLogId         = 4;
            const int    learningHubResourceId = 6;

            var addedDate = new DateTime(2021, 11, 1);

            A.CallTo(() => clockService.UtcNow).Returns(addedDate);

            A.CallTo(
                () => learningResourceReferenceDataService.GetLearningHubResourceReferenceById(
                    learningResourceReferenceId
                    )
                ).Returns(learningHubResourceId);

            var resource = new ResourceReferenceWithResourceDetails {
                Title = resourceName, Link = resourceLink
            };

            A.CallTo(() => learningHubResourceService.GetResourceByReferenceId(learningHubResourceId))
            .Returns((resource, true));

            var resourceCompetencies = new[] { 1, 2, 3, 4, 5, 6, 7, 8 };

            A.CallTo(
                () => competencyLearningResourcesDataService.GetCompetencyIdsLinkedToResource(
                    learningResourceReferenceId
                    )
                ).Returns(resourceCompetencies);

            var assessmentCompetencies = new[] { 2, 3, 5, 6, 8, 9, 10 };

            A.CallTo(() => selfAssessmentDataService.GetCompetencyIdsForSelfAssessment(selfAssessmentId))
            .Returns(assessmentCompetencies);

            A.CallTo(() => selfAssessmentDataService.GetCandidateAssessments(delegateId, selfAssessmentId))
            .Returns(
                new[] { Builder <CandidateAssessment> .CreateNew().With(ca => ca.Id = candidateAssessmentId).Build() }
                );

            A.CallTo(
                () => learningLogItemsDataService.InsertLearningLogItem(
                    A <int> ._,
                    A <DateTime> ._,
                    A <string> ._,
                    A <string> ._,
                    A <int> ._
                    )
                ).Returns(learningLogId);

            var expectedMatchingCompetencies = new[] { 2, 3, 5, 6, 8 };

            // When
            actionPlanService.AddResourceToActionPlan(learningResourceReferenceId, delegateId, selfAssessmentId);

            // Then
            A.CallTo(
                () => learningLogItemsDataService.InsertLearningLogItem(
                    delegateId,
                    addedDate,
                    resourceName,
                    resourceLink,
                    learningResourceReferenceId
                    )
                ).MustHaveHappenedOnceExactly();
            A.CallTo(
                () => learningLogItemsDataService.InsertCandidateAssessmentLearningLogItem(
                    candidateAssessmentId,
                    learningLogId
                    )
                ).MustHaveHappenedOnceExactly();

            foreach (var competencyId in expectedMatchingCompetencies)
            {
                A.CallTo(
                    () => learningLogItemsDataService.InsertLearningLogItemCompetencies(
                        learningLogId,
                        competencyId,
                        addedDate
                        )
                    ).MustHaveHappenedOnceExactly();
            }

            A.CallTo(
                () => learningLogItemsDataService.InsertLearningLogItemCompetencies(learningLogId, A <int> ._, addedDate)
                ).MustHaveHappened(5, Times.Exactly);
        }