public async Task Then_If_It_Is_Not_A_Valid_Receiver_The_FailedTransferReceiver_Flag_Is_Set() { //Arrange _employerAccountService.Setup(x => x.GetTransferConnections(ExpectedTransferSenderEmployerAccountId)) .ReturnsAsync(new List <EmployerTransferConnection> { new EmployerTransferConnection { FundingEmployerAccountId = 1, FundingEmployerAccountName = "Test", FundingEmployerHashedAccountId = "123EDC", FundingEmployerPublicHashedAccountId = "YTR34" } }); var command = new CreateReservationLevyEmployerCommand { TransferSenderEmployerAccountId = ExpectedTransferSenderEmployerAccountId, AccountId = ExpectedAccountId, AccountLegalEntityId = 234, TransferSenderId = 245 }; //Act var result = await _validator.ValidateAsync(command); //Assert Assert.IsTrue(result.FailedTransferReceiverCheck); }
public async Task Then_If_There_Is_A_Transfer_Id_It_Is_Checked_To_See_If_It_Is_A_Valid_Receiver_And_The_Api_Is_Not_Checked_And_FailedAutoReservationCheck_Is_False() { //Arrange _employerAccountService.Setup(x => x.GetTransferConnections(ExpectedAccountHashedId)) .ReturnsAsync(new List <EmployerTransferConnection> { new EmployerTransferConnection { FundingEmployerAccountId = 78954, FundingEmployerAccountName = "Test", FundingEmployerHashedAccountId = "123EDC", FundingEmployerPublicHashedAccountId = ExpectedTransferSenderEmployerAccountId } }); var command = new CreateReservationLevyEmployerCommand { AccountId = ExpectedAccountId, AccountLegalEntityId = 234, TransferSenderId = 345, TransferSenderEmployerAccountId = ExpectedTransferSenderEmployerAccountId }; //Act var result = await _validator.ValidateAsync(command); //Assert _employerAccountService.Verify(x => x.GetTransferConnections(ExpectedAccountHashedId)); Assert.IsFalse(result.FailedTransferReceiverCheck); _apiClient.Verify(x => x.Get <AccountReservationStatusResponse>(It.IsAny <AccountReservationStatusRequest>()), Times.Never); Assert.IsFalse(result.FailedAutoReservationCheck); }
public async Task ThenCallsReservationServiceToCreateReservation( CreateReservationLevyEmployerCommand request, Guid id, [Frozen] Mock <IValidator <CreateReservationLevyEmployerCommand> > validator, [Frozen] Mock <IReservationService> service, CreateReservationLevyEmployerCommandHandler handler) { //Arrange request.TransferSenderId = null; validator.Setup(x => x.ValidateAsync(request)) .ReturnsAsync(new ValidationResult { ValidationDictionary = new Dictionary <string, string>(), FailedAutoReservationCheck = false, FailedTransferReceiverCheck = false }); service.Setup(x => x.CreateReservationLevyEmployer(It.IsAny <Guid>(), request.AccountId, request.AccountLegalEntityId, request.TransferSenderId, request.UserId)) .ReturnsAsync(new CreateReservationResponse { Id = id }); //Act var result = await handler.Handle(request, CancellationToken.None); //Assert service.Verify(x => x.CreateReservationLevyEmployer(It.IsAny <Guid>(), request.AccountId, request.AccountLegalEntityId, request.TransferSenderId, request.UserId)); Assert.AreEqual(id, result.ReservationId); }
public async Task Then_If_The_Account_Is_Not_A_Levy_Account_Then_A_Reservation_Is_Not_Created_And_Null_Returned( CreateReservationLevyEmployerCommand request, Guid id, [Frozen] Mock <IValidator <CreateReservationLevyEmployerCommand> > validator, [Frozen] Mock <IReservationService> service, CreateReservationLevyEmployerCommandHandler handler ) { //Arrange request.TransferSenderId = null; validator.Setup(x => x.ValidateAsync(request)) .ReturnsAsync(new ValidationResult { ValidationDictionary = new Dictionary <string, string>(), FailedAutoReservationCheck = true }); service.Setup(x => x.CreateReservationLevyEmployer(It.IsAny <Guid>(), request.AccountId, request.AccountLegalEntityId, request.TransferSenderId, request.UserId)) .ReturnsAsync(new CreateReservationResponse { Id = id }); //Act var result = await handler.Handle(request, CancellationToken.None); //Assert service.Verify(x => x.CreateReservationLevyEmployer(It.IsAny <Guid>(), It.IsAny <long>(), It.IsAny <long>(), It.IsAny <long?>(), It.IsAny <Guid?>()), Times.Never); Assert.IsNull(result); }
public async Task AndTheCommandIsValid_ThenNoErrorsAdded() { //Arrange var command = new CreateReservationLevyEmployerCommand { AccountId = ExpectedAccountId, AccountLegalEntityId = 324234 }; //Act var result = await _validator.ValidateAsync(command); //Assert Assert.True(result.IsValid()); }
public async Task Then_The_AccountId_Is_Unable_To_Create_Auto_Reservations_A_Flag_Is_Set() { //Arrange var command = new CreateReservationLevyEmployerCommand { AccountId = 123, AccountLegalEntityId = 234 }; //Act var result = await _validator.ValidateAsync(command); //Assert Assert.IsTrue(result.FailedAutoReservationCheck); }
public async Task AndOnlyAccountIdInvalid_ThenAddsError() { //Arrange var command = new CreateReservationLevyEmployerCommand { AccountId = -234, AccountLegalEntityId = 5131 }; //Act var result = await _validator.ValidateAsync(command); //Assert Assert.False(result.IsValid()); Assert.True(result.ValidationDictionary.ContainsKey(nameof(command.AccountId))); Assert.False(result.ValidationDictionary.ContainsKey(nameof(command.AccountLegalEntityId))); }
public void Then_Throws_A_TransferSender_Not_Allowed_Exception_If_Has_Failed_Validation_For_TransferSender( CreateReservationLevyEmployerCommand request, [Frozen] Mock <IValidator <CreateReservationLevyEmployerCommand> > validator, CreateReservationLevyEmployerCommandHandler handler ) { //Arrange validator.Setup(x => x.ValidateAsync(It.IsAny <CreateReservationLevyEmployerCommand>())) .ReturnsAsync(new ValidationResult { ValidationDictionary = new Dictionary <string, string>( ), FailedTransferReceiverCheck = true }); //Act Assert.ThrowsAsync <TransferSenderNotAllowedException>(() => handler.Handle(request, CancellationToken.None)); //Assert validator.Verify(x => x.ValidateAsync(request), Times.Once()); }
public void ThenTheCommandGetsValidatedAndThrowsAnExceptionIfNotValid( CreateReservationLevyEmployerCommand request, [Frozen] Mock <IValidator <CreateReservationLevyEmployerCommand> > validator, CreateReservationLevyEmployerCommandHandler handler) { //Arrange validator.Setup(x => x.ValidateAsync(It.IsAny <CreateReservationLevyEmployerCommand>())) .ReturnsAsync(new ValidationResult { ValidationDictionary = new Dictionary <string, string> { { "", "" } } }); //Act Assert.ThrowsAsync <ValidationException>(() => handler.Handle(request, CancellationToken.None)); //Assert validator.Verify(x => x.ValidateAsync(request), Times.Once()); }
public async Task Then_The_AccountId_Is_Checked_If_There_Is_No_TransferId_To_Make_Sure_It_Is_Able_To_Create_Levy_Reservations() { //Arrange var command = new CreateReservationLevyEmployerCommand { AccountId = ExpectedAccountId, AccountLegalEntityId = 234 }; //Act var result = await _validator.ValidateAsync(command); //Assert _apiClient.Verify(x => x.Get <AccountReservationStatusResponse>( It.Is <AccountReservationStatusRequest>(c => c.BaseUrl.Equals(ExpectedUrl) && c.AccountId.Equals(ExpectedAccountId))), Times.Once); Assert.IsFalse(result.FailedAutoReservationCheck); }