public async void Should_Return_Unprocessable_If_No_Rows_Affected() { // ARRANGE var validator = new CreateTransactionCommandValidator(); var transactionRepositoryMock = new Mock <ITransactionRepository>(); var loggerMock = new Mock <ILogger>(); var handler = new CreateTransactionCommandHandler( transactionRepositoryMock.Object, loggerMock.Object, validator ); transactionRepositoryMock.Setup(x => x.InsertTransaction(It.IsAny <Domain.Models.Transactions.Transaction>())).ReturnsAsync(0); // ACT var response = await handler.Handle(new CreateTransactionCommand() { Transaction = new Domain.Models.Transactions.Transaction() { TransactionId = "1" } }, new CancellationToken()); // ASSERT Assert.Equal(CommandResultTypeEnum.UnprocessableEntity, response.Type); transactionRepositoryMock.Verify(x => x.InsertTransaction(It.IsAny <Domain.Models.Transactions.Transaction>()), Times.Once); }
public async void Request_With_No_Id_Should_Return_Invalid_Input() { // ARRANGE var validator = new CreateTransactionCommandValidator(); var transactionRepositoryMock = new Mock <ITransactionRepository>(); var loggerMock = new Mock <ILogger>(); var handler = new CreateTransactionCommandHandler( transactionRepositoryMock.Object, loggerMock.Object, validator ); // ACT var response = await handler.Handle(new CreateTransactionCommand() { Transaction = new Domain.Models.Transactions.Transaction() }, new CancellationToken()); // ASSERT Assert.Equal(CommandResultTypeEnum.InvalidInput, response.Type); }