public async Task WhenTheNationalInsuranceHasChangedThenACheckIsRequested() { var previousEventId = 123; _repository.Setup(x => x.GetLastProcessedEventId()).ReturnsAsync(previousEventId); _eventsApi.Setup(x => x.GetSubmissionEvents(previousEventId, null, 0L, 1)).ReturnsAsync(new PageOfResults <SubmissionEvent> { Items = new[] { _submissionEvent } }); var previouslyHandledSubmissionEvent = new PreviousHandledSubmissionEvent { Uln = _submissionEvent.Uln, NiNumber = "AA123456A", PassedValidationCheck = true }; _repository.Setup(x => x.GetPreviouslyHandledSubmissionEvents(It.Is <IEnumerable <long> >(y => y.First() == _submissionEvent.Uln))).ReturnsAsync(new List <PreviousHandledSubmissionEvent> { previouslyHandledSubmissionEvent }); await _target.Handle(new InitiateEmploymentCheckForChangedNationalInsuranceNumbersRequest()); _messagePublisher.Verify( x => x.PublishAsync(It.Is <EmploymentCheckRequiredForApprenticeMessage>(y => y.Uln == _submissionEvent.Uln && y.ActualStartDate == _submissionEvent.ActualStartDate && y.ApprenticeshipId == _submissionEvent.ApprenticeshipId && y.NationalInsuranceNumber == _submissionEvent.NiNumber && y.Ukprn == _submissionEvent.Ukprn)), Times.Once()); }
private async Task StoreEmploymentCheckResult(long uln, string nationalInsuranceNumber, bool checkPassed) { var employmentCheckResult = new PreviousHandledSubmissionEvent { Uln = uln, NiNumber = nationalInsuranceNumber, PassedValidationCheck = checkPassed }; await _repository.StoreEmploymentCheckResult(employmentCheckResult); }
public async Task StoreEmploymentCheckResult(PreviousHandledSubmissionEvent submissionEvent) { await WithConnection(async c => { var parameters = new DynamicParameters(); parameters.Add("@uln", submissionEvent.Uln); parameters.Add("@nationalInsuranceNumber", submissionEvent.NiNumber); parameters.Add("@passedValidationCheck", submissionEvent.PassedValidationCheck); return(await c.ExecuteAsync( sql: "[employer_check].[StoreEmploymentCheckResult]", param: parameters, commandType: CommandType.StoredProcedure)); } ); }
public async Task WhenNoNationalInsuranceNumberIsProvidedThenACheckIsNotRequested() { var previousEventId = 123; _repository.Setup(x => x.GetLastProcessedEventId()).ReturnsAsync(previousEventId); _submissionEvent.NiNumber = null; _eventsApi.Setup(x => x.GetSubmissionEvents(previousEventId, null, 0L, 1)).ReturnsAsync(new PageOfResults <SubmissionEvent> { Items = new[] { _submissionEvent } }); var previouslyHandledSubmissionEvent = new PreviousHandledSubmissionEvent { Uln = _submissionEvent.Uln + 1, NiNumber = _submissionEvent.NiNumber, PassedValidationCheck = true }; _repository.Setup(x => x.GetPreviouslyHandledSubmissionEvents(It.Is <IEnumerable <long> >(y => y.First() == _submissionEvent.Uln))).ReturnsAsync(new List <PreviousHandledSubmissionEvent> { previouslyHandledSubmissionEvent }); await _target.Handle(new InitiateEmploymentCheckForChangedNationalInsuranceNumbersRequest()); _messagePublisher.Verify(x => x.PublishAsync(It.IsAny <EmploymentCheckRequiredForApprenticeMessage>()), Times.Never()); }