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);
        }
Exemple #2
0
 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);
        }