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);
 }
コード例 #3
0
        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());
        }