public void Then_an_exception_is_thrown_when_the_account_is_null() { // arrange var pendingPayment = _sut.PendingPayments.First(); // act Action result = () => _sut.ValidateMinimumRequiredAgreementVersion(pendingPayment.Id, null, _collectionPeriod); // assert result.Should().Throw <InvalidPendingPaymentException>().WithMessage($"Unable to validate PendingPayment {pendingPayment.Id} of ApprenticeshipIncentive {_sut.Id} because the provided Account record does not match the one against the incentive."); }
public void Then_a_validation_result_is_created_for_the_required_minimum_agreement_version( int?legalEntitySignedVersion, int?minimumRequiredVersion, bool validationResult) { // arrange var pendingPayment = _sut.PendingPayments.First(); var legalEntity = Accounts.LegalEntity.Create(_fixture.Build <LegalEntityModel>() .With(l => l.AccountLegalEntityId, pendingPayment.Account.AccountLegalEntityId) .With(l => l.SignedAgreementVersion, legalEntitySignedVersion) .Create()); _account.AddLegalEntity(pendingPayment.Account.AccountLegalEntityId, legalEntity); _sutModel.MinimumAgreementVersion = new AgreementVersion(minimumRequiredVersion); _sut = Sut(_sutModel); // act _sut.ValidateMinimumRequiredAgreementVersion(pendingPayment.Id, _account, _collectionPeriod); // assert pendingPayment.PendingPaymentValidationResults.Count.Should().Be(1); var validationresult = pendingPayment.PendingPaymentValidationResults.First(); validationresult.Step.Should().Be(ValidationStep.HasSignedMinVersion); validationresult.CollectionPeriod.Should().Be(_collectionPeriod); validationresult.Result.Should().Be(validationResult); }