public async Task Handle_CreateTransferSameAccount_ShouldReturnBusinessException() { var handler = new TransferCreateHandler(_mockMediator.Object, _mockRepo.Object); var request = new TransferCreateRequest { AccountId = 1, CustomerId = 1, Ammount = 100, RecipientAccountId = 1, RecipientCustomerId = 2 }; await Assert.ThrowsAsync <BusinessException>(() => handler.Handle(request, default)); }
public async Task Handle_CreateTransferNegativeBalance_ShouldReturnBusinessException() { var handler = new TransferCreateHandler(_mockMediator.Object, _mockRepo.Object); var request = new TransferCreateRequest { AccountId = 1, CustomerId = 1, Ammount = 200, RecipientAccountId = 2, RecipientCustomerId = 2 }; var accountFrom = GetTestFromAccount(); _mockMediator .Setup(m => m.Send(It.Is <AccountGetRequest>(a => a.AccountId == accountFrom.Id), default)) .Returns(Task.FromResult(accountFrom)) .Verifiable(); MockTransferTransactionType(); await Assert.ThrowsAsync <BusinessException>(() => handler.Handle(request, default)); _mockMediator.Verify(); }
public async Task Handle_CreateTransfer_ShouldReturnTransaction() { var handler = new TransferCreateHandler(_mockMediator.Object, _mockRepo.Object); var request = new TransferCreateRequest { AccountId = 1, CustomerId = 1, Ammount = 10, RecipientAccountId = 2, RecipientCustomerId = 2 }; var accountFrom = GetTestFromAccount(); var accountTo = GetTestToAccount(); var transferType = GetTransferType(); var transferTransactions = handler.BuildTransferTransactions(request, accountFrom, accountTo, transferType); MockTransferTransactionType(); MockMediator(transferTransactions, accountFrom, accountTo); var result = await handler.Handle(request, default); _mockMediator.Verify(); Assert.IsAssignableFrom <IEnumerable <TransactionModel> >(result); Assert.Equal(3, result.Count()); }