コード例 #1
0
        public async Task CareerPathSegmentServiceCreateReturnsSuccessWhenSegmentCreated()
        {
            // arrange
            var careerPathSegmentModel = A.Fake <CareerPathSegmentModel>();

            A.CallTo(() => repository.UpsertAsync(A <CareerPathSegmentModel> .Ignored)).Returns(HttpStatusCode.Created);

            // act
            var result = await careerPathSegmentService.UpsertAsync(careerPathSegmentModel).ConfigureAwait(false);

            // assert
            A.CallTo(() => repository.UpsertAsync(A <CareerPathSegmentModel> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => jobProfileSegmentRefreshService.SendMessageAsync(A <RefreshJobProfileSegmentServiceBusModel> .Ignored)).MustHaveHappenedOnceExactly();
            Assert.Equal(HttpStatusCode.Created, result);
        }
        public async Task <int> RefreshCoursesAndUpdateJobProfileAsync(Guid documentId)
        {
            logger.LogInformation($"{nameof(RefreshCoursesAndUpdateJobProfileAsync)} has been called for document {documentId}");
            var currentOpportunitiesSegmentModel = await repository.GetAsync(d => d.DocumentId == documentId).ConfigureAwait(false);

            var numberPulled = await RefreshCoursesAsync(currentOpportunitiesSegmentModel).ConfigureAwait(false);

            var refreshJobProfileSegmentServiceBusModel = mapper.Map <RefreshJobProfileSegmentServiceBusModel>(currentOpportunitiesSegmentModel);
            await jobProfileSegmentRefreshService.SendMessageAsync(refreshJobProfileSegmentServiceBusModel).ConfigureAwait(false);

            return(numberPulled);
        }
        private async Task <HttpStatusCode> UpsertAndRefreshSegmentModel(JobProfileOverviewSegmentModel existingSegmentModel)
        {
            var result = await repository.UpsertAsync(existingSegmentModel).ConfigureAwait(false);

            if (result == HttpStatusCode.OK || result == HttpStatusCode.Created)
            {
                var refreshJobProfileSegmentServiceBusModel = mapper.Map <RefreshJobProfileSegmentServiceBusModel>(existingSegmentModel);

                await jobProfileSegmentRefreshService.SendMessageAsync(refreshJobProfileSegmentServiceBusModel).ConfigureAwait(false);
            }

            return(result);
        }
コード例 #4
0
        public async Task RefreshApprenticeshipVacanciesAndUpdateJobProfileSendsMsg()
        {
            //arrange
            A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <CurrentOpportunitiesSegmentModel, bool> > > .Ignored)).Returns(currentOpportunitiesSegmentModel);

            var courseCurrentOpportunitiesRefresh = new CourseCurrentOpportunitiesRefresh(fakeLogger, fakeRepository, fakeCourseSearchClient, fakeMapper, courseSearchSettings, fakejobProfileSegmentRefreshService);

            //Act
            _ = await courseCurrentOpportunitiesRefresh.RefreshCoursesAndUpdateJobProfileAsync(A.Dummy <Guid>()).ConfigureAwait(false);

            //Asserts
            A.CallTo(() => fakejobProfileSegmentRefreshService.SendMessageAsync(A <RefreshJobProfileSegmentServiceBusModel> .Ignored)).MustHaveHappenedOnceExactly();
        }
        public async Task PatchUniformReturnsSuccessWhenMessageActionIsPublished()
        {
            // Arrange
            var model         = GetPatchUniformModel();
            var existingModel = GetJobProfileTasksSegmentModel();

            var fakeRepository = A.Fake <ICosmosRepository <JobProfileTasksSegmentModel> >();

            A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileTasksSegmentModel, bool> > > .Ignored)).Returns(existingModel);
            A.CallTo(() => fakeRepository.UpsertAsync(A <JobProfileTasksSegmentModel> .Ignored)).Returns(HttpStatusCode.OK);

            var segmentService = new JobProfileTasksSegmentService(fakeRepository, mapper, jobProfileSegmentRefreshService);

            // Act
            var result = await segmentService.PatchUniformAsync(model, jobProfileId).ConfigureAwait(false);

            // Assert
            A.CallTo(() => fakeRepository.GetAsync(A <Expression <Func <JobProfileTasksSegmentModel, bool> > > .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => fakeRepository.UpsertAsync(A <JobProfileTasksSegmentModel> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => jobProfileSegmentRefreshService.SendMessageAsync(A <RefreshJobProfileSegmentServiceBusModel> .Ignored)).MustHaveHappenedOnceExactly();
            A.CallTo(() => mapper.Map <Uniform>(A <PatchUniformModel> .Ignored)).MustHaveHappenedOnceExactly();
            Assert.Equal(HttpStatusCode.OK, result);
        }
コード例 #6
0
        private async Task <HttpStatusCode> UpsertAndRefreshSegmentModel(CurrentOpportunitiesSegmentModel existingSegmentModel)
        {
            var result = await repository.UpsertAsync(existingSegmentModel).ConfigureAwait(false);

            int numberOfRefreshFailures = 0;

            if (result == HttpStatusCode.Created || result == HttpStatusCode.OK)
            {
                var refreshJobProfileSegmentServiceBusModel = mapper.Map <RefreshJobProfileSegmentServiceBusModel>(existingSegmentModel);
                numberOfRefreshFailures += await TryRefresh(() => aVCurrentOpportunatiesRefresh.RefreshApprenticeshipVacanciesAsync(existingSegmentModel.DocumentId), existingSegmentModel.CanonicalName).ConfigureAwait(false);

                numberOfRefreshFailures += await TryRefresh(() => courseCurrentOpportunitiesRefresh.RefreshCoursesAsync(existingSegmentModel.DocumentId), existingSegmentModel.CanonicalName).ConfigureAwait(false);

                if (numberOfRefreshFailures <= 1)
                {
                    await jobProfileSegmentRefreshService.SendMessageAsync(refreshJobProfileSegmentServiceBusModel).ConfigureAwait(false);
                }
            }

            return(result);
        }
        public async Task <HttpStatusCode> UpsertAsync(CareerPathSegmentModel careerPathSegmentModel)
        {
            if (careerPathSegmentModel == null)
            {
                throw new ArgumentNullException(nameof(careerPathSegmentModel));
            }

            if (careerPathSegmentModel.Data == null)
            {
                careerPathSegmentModel.Data = new CareerPathSegmentDataModel();
            }

            var result = await repository.UpsertAsync(careerPathSegmentModel).ConfigureAwait(false);

            if (result == HttpStatusCode.OK || result == HttpStatusCode.Created)
            {
                var refreshJobProfileSegmentServiceBusModel = mapper.Map <RefreshJobProfileSegmentServiceBusModel>(careerPathSegmentModel);
                await jobProfileSegmentRefreshService.SendMessageAsync(refreshJobProfileSegmentServiceBusModel).ConfigureAwait(false);
            }

            return(result);
        }