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(); }
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); }
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)); }