public async void GetTransactions_ReturnsTransactions_WithValidRequest() { //Arrange var messageHandler = new MockHttpMessageHandler( ($"/auth/clientid", HttpMethod.Get, HttpStatusCode.OK, File.ReadAllText("Samples/Response/GET_auth.json")), ($"/transactions/", HttpMethod.Get, HttpStatusCode.OK, File.ReadAllText("Samples/Response/GET_transactions.json"))); var httpClient = new HttpClient(messageHandler); _mockHttpClientFactory.Setup(mockFactory => mockFactory.CreateClient("")).Returns(httpClient); var aplosApiClient = new AplosApiClient( "acctid", "clientid", "pk", new Uri("https://www.pexcard.com/"), _mockHttpClientFactory.Object, _mockAccessTokenDecryptor.Object, _mockLogger.Object, null, null); //Act var apiResponse = await aplosApiClient.GetTransactions(DateTime.Parse("2020-01-13")); //Assert Assert.NotNull(apiResponse); Assert.Equal(2, apiResponse.Count); AplosApiTransactionDetail transaction1 = apiResponse[0]; Assert.Equal(15799496, transaction1.Id); Assert.Equal("416294307 | Ty Baker", transaction1.Note); Assert.Equal(DateTime.Parse("2019-12-12"), transaction1.Date); Assert.Equal(15.87m, transaction1.Amount); AplosApiContactDetail contact1 = transaction1.Contact; Assert.NotNull(contact1); Assert.Equal(5791245, contact1.Id); Assert.Equal("Dec 17 Test", contact1.CompanyName); Assert.Equal("company", contact1.Type); AplosApiTransactionDetail transaction2 = apiResponse[1]; Assert.Equal(15799495, transaction2.Id); Assert.Equal("416294302 | Ty Baker", transaction2.Note); Assert.Equal(DateTime.Parse("2019-12-12"), transaction2.Date); Assert.Equal(26.91m, transaction2.Amount); AplosApiContactDetail contact2 = transaction2.Contact; Assert.NotNull(contact2); Assert.Equal(5708502, contact2.Id); Assert.Equal("Some Payee", contact2.CompanyName); Assert.Equal("company", contact2.Type); }
public async Task <AplosApiTransactionResponse> CreateTransaction( AplosApiTransactionDetail aplosTransaction, CancellationToken cancellationToken = default) { return(await InvokeAplosApiWithAccessToken <AplosApiTransactionDetail, AplosApiTransactionResponse>( HttpMethod.Post, APLOS_ENDPOINT_TRANSACTIONS, aplosTransaction, cancellationToken : cancellationToken)); }
public async void GetTransaction_ReturnsTransaction_WithValidRequest() { //Arrange var messageHandler = new MockHttpMessageHandler( ($"/auth/clientid", HttpMethod.Get, HttpStatusCode.OK, File.ReadAllText("Samples/Response/GET_auth.json")), ($"/transactions/15145647", HttpMethod.Get, HttpStatusCode.OK, File.ReadAllText("Samples/Response/GET_transactions_15145647.json"))); var httpClient = new HttpClient(messageHandler); _mockHttpClientFactory.Setup(mockFactory => mockFactory.CreateClient("")).Returns(httpClient); var aplosApiClient = new AplosApiClient( "acctid", "clientid", "pk", new Uri("https://www.pexcard.com/"), _mockHttpClientFactory.Object, _mockAccessTokenDecryptor.Object, _mockLogger.Object, null, null); //Act AplosApiTransactionResponse apiResponse = await aplosApiClient.GetTransaction(15145647); //Assert Assert.NotNull(apiResponse); Assert.NotNull(apiResponse.Data); Assert.NotNull(apiResponse.Data.Transaction); AplosApiTransactionDetail transaction = apiResponse.Data.Transaction; Assert.Equal(15145647, transaction.Id); Assert.Equal("Test 123", transaction.Note); Assert.Equal(DateTime.Parse("2019-11-25"), transaction.Date); Assert.Equal(50, transaction.Amount); AplosApiContactDetail contact = transaction.Contact; Assert.NotNull(contact); Assert.Equal(5656815, contact.Id); Assert.Equal("Lumber", contact.CompanyName); Assert.Equal("company", contact.Type); AplosApiTransactionLineDetail[] lines = transaction.Lines; Assert.NotNull(lines); Assert.Equal(2, lines.Length); AplosApiTransactionLineDetail line1 = lines[0]; Assert.NotNull(line1); Assert.Equal(75372351, line1.Id); Assert.Equal(50.00m, line1.Amount); Assert.NotNull(line1.Account); Assert.Equal(1200, line1.Account.AccountNumber); Assert.Equal("PEX Account", line1.Account.Name); Assert.NotNull(line1.Fund); Assert.Equal(225755, line1.Fund.Id); Assert.Equal("General Fund", line1.Fund.Name); AplosApiTransactionLineDetail line2 = lines[1]; Assert.NotNull(line2); Assert.Equal(75372350, line2.Id); Assert.Equal(-50.00m, line2.Amount); Assert.NotNull(line2.Account); Assert.Equal(1000, line2.Account.AccountNumber); Assert.Equal("Checking", line2.Account.Name); Assert.NotNull(line2.Fund); Assert.Equal(225755, line2.Fund.Id); Assert.Equal("General Fund", line2.Fund.Name); }