Exemple #1
0
        public async Task WhenAnEmploymentCheckIsRequestedThenACheckIsRequestedForThePayeSchemesLinkedToTheEmployersAccount()
        {
            var request           = new RequestEmploymentCheckForEmployerPayeSchemesRequest("AB12345C", 1324, 6543, 4353443, DateTime.Now.AddYears(-1));
            var expectedAccountId = 349875;

            _commitmentsApi.Setup(x => x.GetProviderApprenticeship(request.Ukprn, request.ApprenticeshipId)).ReturnsAsync(new Apprenticeship {
                EmployerAccountId = expectedAccountId
            });
            var accountPayeSchemes = new List <ResourceViewModel>
            {
                new ResourceViewModel {
                    Id = "ABC/123"
                },
                new ResourceViewModel {
                    Id = "ZZZ/999"
                }
            };
            var account = new AccountDetailViewModel {
                PayeSchemes = new ResourceList(accountPayeSchemes)
            };

            _accountApiClient.Setup(x => x.GetAccount(expectedAccountId)).ReturnsAsync(account);

            await _target.Handle(request);

            _messagePublisher.Verify(
                x => x.PublishAsync(It.Is <EmploymentCheckRequiredForAccountMessage>(y =>
                                                                                     y.Uln == request.Uln && y.ActualStartDate == request.ActualStartDate &&
                                                                                     y.EmployerAccountId == expectedAccountId &&
                                                                                     y.NationalInsuranceNumber == request.NationalInsuranceNumber && y.Ukprn == request.Ukprn &&
                                                                                     y.PayeSchemes.SequenceEqual(accountPayeSchemes.Select(z => z.Id)))), Times.Once());
        }
Exemple #2
0
 protected override async Task ProcessMessage(EmploymentCheckRequiredForApprenticeMessage messageContent)
 {
     var request = new RequestEmploymentCheckForEmployerPayeSchemesRequest
                   (
         messageContent.NationalInsuranceNumber, messageContent.Uln, messageContent.ApprenticeshipId, messageContent.Ukprn, messageContent.ActualStartDate
                   );
     await _mediator.PublishAsync(request);
 }
Exemple #3
0
        public async Task WhenTheCommitmentHasADifferentProviderIdToThRequestThenANegativeEmploymentCheckResultIsStored()
        {
            var request = new RequestEmploymentCheckForEmployerPayeSchemesRequest("AB12345C", 1324, 6543, 4353443, DateTime.Now.AddYears(-1));

            _commitmentsApi.Setup(x => x.GetProviderApprenticeship(request.Ukprn, request.ApprenticeshipId)).Throws(new HttpRequestException("SAD STRING THAT CONTAINS 401 SO WE CAN DETERMINE THE STATUS CODE! :("));

            await _target.Handle(request);

            _repository.Verify(x => x.StoreEmploymentCheckResult(It.Is <PreviousHandledSubmissionEvent>(y => y.Uln == request.Uln && y.NiNumber == request.NationalInsuranceNumber && !y.PassedValidationCheck)), Times.Once);
            _eventsApi.Verify(x => x.CreateGenericEvent(It.Is <GenericEvent>(y => !string.IsNullOrWhiteSpace(y.Payload) && y.Type == "EmploymentCheckCompleteEvent")), Times.Once);
        }