public async Task CreateTransactionAsync_ShouldReturnTransactionResultFromCreateBankTransactionResponse() { //Arrange var bankTransactionRequest = GetBankTransactionObject(); var createBankTransactionResponse = GetCreateBankTransactionResponse(); var expectedTransactionResult = GetTransactionResultFromCreateBankTransactionResponse(createBankTransactionResponse); _bankHttpClientMock.Setup(x => x.CreateTransactionAsync(It.IsAny <CreateBankTransactionRequest>())) .ReturnsAsync(createBankTransactionResponse); var sut = new BankRepository(_bankHttpClientMock.Object, _mapper); //Act var result = await sut.CreateTransactionAsync(bankTransactionRequest); //Assert result.Should().BeEquivalentTo(expectedTransactionResult); }
public async Task CreateTransactionAsync_ShouldCreateTransactionWithCorrectRequestMapping() { //Arrange var bankTransactionRequest = GetBankTransactionObject(); var createBankTransactionRequest = GetCreateBankTransactionRequestFromBankTransaction(bankTransactionRequest); var createBankTransactionResponse = GetCreateBankTransactionResponse(); var passedCreateTransactionRequest = new CreateBankTransactionRequest(); _bankHttpClientMock.Setup(x => x.CreateTransactionAsync(It.IsAny <CreateBankTransactionRequest>())) .ReturnsAsync(createBankTransactionResponse) .Callback <CreateBankTransactionRequest>(x => passedCreateTransactionRequest = x); var sut = new BankRepository(_bankHttpClientMock.Object, _mapper); //Act await sut.CreateTransactionAsync(bankTransactionRequest); //Assert passedCreateTransactionRequest.Should().BeEquivalentTo(createBankTransactionRequest); _bankHttpClientMock.Verify(x => x.CreateTransactionAsync(passedCreateTransactionRequest), Times.Once); }