public async Task Then_The_GlobalRules_Are_Checked_And_An_Error_Returned_If_Not_Valid( CacheReservationEmployerCommand command, [Frozen] Mock <IMediator> mockMediator, [Frozen] Mock <IFundingRulesService> rulesService, CacheReservationEmployerCommandValidator validator) { SetupAccountLegalEntityAsNonLevy(mockMediator); rulesService.Setup(x => x.GetFundingRules()).ReturnsAsync(new GetFundingRulesApiResponse { GlobalRules = new List <GlobalRule> { new GlobalRule { Restriction = AccountRestriction.NonLevy, RuleType = GlobalRuleType.FundingPaused, ActiveFrom = DateTime.UtcNow.AddMonths(-1) } } }); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeTrue(); result.FailedGlobalRuleValidation.Should().BeTrue(); }
public async Task And_NonLevy_And_Is_Valid( CacheReservationEmployerCommand command, [Frozen] Mock <IFundingRulesService> rulesService, [Frozen] Mock <IMediator> mockMediator, CacheReservationEmployerCommandValidator validator) { ConfigureRulesServiceWithNoGlobalRules(rulesService); SetupAccountLegalEntityAsNonLevy(mockMediator); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeTrue(); }
public async Task And_All_Properties_Ok_Then_Valid( CacheReservationEmployerCommand command, [Frozen] Mock <IMediator> mockMediator, [Frozen] Mock <IFundingRulesService> rulesService, CacheReservationEmployerCommandValidator validator) { ConfigureRulesServiceWithNoGlobalRules(rulesService); SetupAccountLegalEntityAsEoi(mockMediator); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeTrue(); result.FailedRuleValidation.Should().BeFalse(); }
public async Task And_Provider_Is_Not_Trusted_For_Account_Legal_Entity_Then_Mark_As_Not_Authorised( CacheReservationEmployerCommand command, [Frozen] Mock <IMediator> mediator, [Frozen] GetTrustedEmployersResponse response, CacheReservationEmployerCommandValidator validator) { SetupAccountLegalEntityAsNonLevy(mediator); command.IsEmptyCohortFromSelect = false; mediator.Setup(m => m.Send(It.IsAny <GetTrustedEmployersQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(response); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeTrue(); result.FailedAuthorisationValidation.Should().BeTrue(); }
public async Task And_AccountId_Less_Than_One_Then_Invalid( CacheReservationEmployerCommand command, [Frozen] Mock <IFundingRulesService> rulesService, CacheReservationEmployerCommandValidator validator) { ConfigureRulesServiceWithNoGlobalRules(rulesService); command.AccountId = default(long); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeFalse(); result.ValidationDictionary.Count.Should().Be(1); result.ValidationDictionary .Should().ContainKey(nameof(CacheReservationEmployerCommand.AccountId)) .WhichValue.Should().Be($"{nameof(CacheReservationEmployerCommand.AccountId)} has not been supplied"); }
public async Task And_Provider_Is_Supplied_For_Empty_Cohort_Then_It_Is_Not_Validated_For_Account_Legal_Entity( CacheReservationEmployerCommand command, [Frozen] Mock <IMediator> mediator, [Frozen] GetTrustedEmployersResponse response, CacheReservationEmployerCommandValidator validator) { SetupAccountLegalEntityAsEoi(mediator); command.IsEmptyCohortFromSelect = true; mediator.Setup(m => m.Send(It.IsAny <GetTrustedEmployersQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(response); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeTrue(); result.FailedAuthorisationValidation.Should().BeFalse(); mediator.Verify(x => x.Send(It.IsAny <GetTrustedEmployersQuery>(), It.IsAny <CancellationToken>()), Times.Never); }
public async Task And_No_Id_Then_Invalid( CacheReservationEmployerCommand command, [Frozen] Mock <IMediator> mockMediator, [Frozen] Mock <IFundingRulesService> rulesService, CacheReservationEmployerCommandValidator validator) { SetupAccountLegalEntityAsNonLevy(mockMediator); ConfigureRulesServiceWithNoGlobalRules(rulesService); command.Id = Guid.Empty; var result = await validator.ValidateAsync(command); result.IsValid().Should().BeFalse(); result.ValidationDictionary.Count.Should().Be(1); result.ValidationDictionary .Should().ContainKey(nameof(CacheReservationEmployerCommand.Id)) .WhichValue.Should().Be($"{nameof(CacheReservationEmployerCommand.Id)} has not been supplied"); }
public async Task And_NonLevy_And_Not_Eoi_Then_Not_Valid( CacheReservationEmployerCommand command, GetLegalEntitiesResponse getLegalEntitiesResponse, [Frozen] Mock <IFundingRulesService> rulesService, [Frozen] Mock <IMediator> mockMediator, CacheReservationEmployerCommandValidator validator) { ConfigureRulesServiceWithNoGlobalRules(rulesService); foreach (var accountLegalEntity in getLegalEntitiesResponse.AccountLegalEntities) { accountLegalEntity.IsLevy = false; accountLegalEntity.AgreementType = AgreementType.Levy; } mockMediator .Setup(mediator => mediator.Send(It.IsAny <GetLegalEntitiesQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(getLegalEntitiesResponse); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeTrue(); result.FailedEoiCheck.Should().BeTrue(); }
public async Task Then_The_Account_Is_Checked_Against_The_AccountRules_And_An_Error_Returned_If_Not_Valid( CacheReservationEmployerCommand command, [Frozen] Mock <IMediator> mockMediator, [Frozen] Mock <IFundingRulesService> rulesService, CacheReservationEmployerCommandValidator validator) { SetupAccountLegalEntityAsNonLevy(mockMediator); rulesService.Setup(x => x.GetAccountFundingRules(command.AccountId)).ReturnsAsync( new GetAccountFundingRulesApiResponse { GlobalRules = new List <GlobalRule> { new GlobalRule { Restriction = AccountRestriction.Account, RuleType = GlobalRuleType.ReservationLimit } } }); var result = await validator.ValidateAsync(command); result.IsValid().Should().BeTrue(); result.FailedRuleValidation.Should().BeTrue(); }