public void Maps_DataLockTriageApprovedEvent_To_UpdatedApprenticeshipDataLockTriageModel_Correctly()
        {
            var approvalsEvent = new DataLockTriageApprovedEvent
            {
                ApprovedOn       = DateTime.Today.AddMonths(-13),
                ApprenticeshipId = 12,
                TrainingCode     = "460-3-2",
                TrainingType     = ProgrammeType.Framework,
                PriceEpisodes    = new PriceEpisode[]
                {
                    new PriceEpisode {
                        FromDate = DateTime.Today.AddMonths(-12), Cost = 1000M, ToDate = DateTime.Today.AddDays(-1)
                    },
                    new PriceEpisode {
                        FromDate = DateTime.Today, Cost = 1200M
                    }
                }
            };
            var model = Mapper.Map <UpdatedApprenticeshipDataLockTriageModel>(approvalsEvent);

            model.AgreedOnDate.Should().Be(approvalsEvent.ApprovedOn);
            model.ApprenticeshipId.Should().Be(approvalsEvent.ApprenticeshipId);
            model.StandardCode.Should().Be(0);
            model.FrameworkCode.Should().Be(460);
            model.ProgrammeType.Should().Be(3);
            model.PathwayCode.Should().Be(2);
            model.ApprenticeshipPriceEpisodes.Count.Should().Be(approvalsEvent.PriceEpisodes.Length);
            approvalsEvent.PriceEpisodes
            .All(pe => model.ApprenticeshipPriceEpisodes.Any(ape => ape.StartDate == pe.FromDate && ape.Cost == pe.Cost && ape.EndDate == pe.ToDate))
            .Should().BeTrue();
        }
Пример #2
0
        public async Task Process_Apprenticeship_DataLock_Triage()
        {
            var dataLockTriageApprovedEvent = new DataLockTriageApprovedEvent()
            {
                ApprenticeshipId = 1,
                ApprovedOn       = DateTime.Today,
                TrainingCode     = "98",
                TrainingType     = ProgrammeType.Standard,
                PriceEpisodes    = new []
                {
                    new PriceEpisode
                    {
                        FromDate = DateTime.Today,
                        ToDate   = DateTime.Today.AddYears(1),
                        Cost     = 1000m
                    }
                }
            };

            mocker.Mock <IApprenticeshipDataLockTriageService>()
            .Setup(svc => svc.UpdateApprenticeship(It.IsAny <UpdatedApprenticeshipDataLockTriageModel>()))
            .ReturnsAsync(() => new ApprenticeshipModel
            {
                Id = dataLockTriageApprovedEvent.ApprenticeshipId
            });

            var apprenticeshipProcessor = mocker.Create <ApprenticeshipProcessor>();
            await apprenticeshipProcessor.ProcessApprenticeshipDataLockTriage(dataLockTriageApprovedEvent);

            mocker.Mock <IEndpointInstance>()
            .Verify(svc => svc.Publish(It.Is <ApprenticeshipUpdated>(ev =>
                                                                     ev.Id == dataLockTriageApprovedEvent.ApprenticeshipId),
                                       It.IsAny <PublishOptions>()), Times.Once);
        }
Пример #3
0
        public async Task ProcessApprenticeshipDataLockTriage(DataLockTriageApprovedEvent apprenticeshipDataLockTriageEvent)
        {
            try
            {
                logger.LogDebug($"Now processing the apprenticeship DataLock Triage update for Apprenticeship id: {apprenticeshipDataLockTriageEvent.ApprenticeshipId}");
                var model = mapper.Map <UpdatedApprenticeshipDataLockTriageModel>(apprenticeshipDataLockTriageEvent);
                var updatedApprenticeship = await apprenticeshipDataLockTriageService.UpdateApprenticeship(model).ConfigureAwait(false);

                await PublishApprenticeshipUpdate(updatedApprenticeship);

                logger.LogInfo($"Finished processing the Apprenticeship dataLock Triage update event. Apprenticeship id: {updatedApprenticeship.Id}, employer account id: {updatedApprenticeship.AccountId}, Ukprn: {updatedApprenticeship.Ukprn}.");
            }
            catch (Exception ex)
            {
                logger.LogError($"Error processing the apprenticeship DataLock Triage update event. Error: {ex.Message}", ex);
                throw;
            }
        }
 public Task Handle(DataLockTriageApprovedEvent message, IMessageHandlerContext context)
 {
     return(Log(message, context));
 }