public async Task ProcessTransactionAsync_ThrowsException_ReturnsDefault() { // Arrange var bankClientRequest = new BankClientRequest { Amount = 1000, CardNumber = "1234567890123456", ExpiryMonth = 12, ExpiryYear = 2020, SecurityCode = 123 }; this.httpClientFactoryMock .Setup(s => s.CreateClient(It.IsAny <string>())) .Throws(new Exception()); // Act var bankResult = await this.target.ProcessTransactionAsync(bankClientRequest); // Assert Assert.Null(bankResult); this.httpClientFactoryMock .Verify(v => v.CreateClient(It.IsAny <string>()), Times.Once); this.loggerMock .Verify(v => v.Log( It.Is <LogLevel>(l => l == LogLevel.Error), It.IsAny <EventId>(), It.Is <It.IsAnyType>((v, t) => v.ToString().Equals("Error while processing bank transaction.")), It.IsAny <Exception>(), It.Is <Func <It.IsAnyType, Exception, string> >((v, t) => true)), Times.Once); }
public async Task ProcessTransactionAsync_HappyJourney_ReturnsTransaction() { // Arrange var bankClientRequest = new BankClientRequest { Amount = 1000, CardNumber = "1234567890123456", ExpiryMonth = 12, ExpiryYear = 2020, SecurityCode = 123 }; // Act var bankResult = await this.target.ProcessTransactionAsync(bankClientRequest); // Assert Assert.NotNull(bankResult); Assert.Equal(new Guid("65a83e69-6741-4970-ab7c-433beb3837cb"), bankResult.TransactionId); this.httpClientFactoryMock .Verify(v => v.CreateClient(It.IsAny <string>()), Times.Once); }