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 void GetContact_ReturnsCompanyContact_WithValidRequest()
        {
            //Arrange
            var messageHandler = new MockHttpMessageHandler(
                ($"/auth/clientid", HttpMethod.Get, HttpStatusCode.OK, File.ReadAllText("Samples/Response/GET_auth.json")),
                ($"/contacts/5666276", HttpMethod.Get, HttpStatusCode.OK, File.ReadAllText("Samples/Response/GET_contacts_5666276.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
            AplosApiContactResponse apiResponse = await aplosApiClient.GetContact(5666276);

            //Assert
            Assert.NotNull(apiResponse);
            Assert.NotNull(apiResponse.Data);
            Assert.NotNull(apiResponse.Data.Contact);

            AplosApiContactDetail contact = apiResponse.Data.Contact;

            Assert.Equal(5666276, contact.Id);
            Assert.Equal("Chuck E. Cheese", contact.CompanyName);
            Assert.Equal("company", contact.Type);
            Assert.Equal("*****@*****.**", contact.Email);

            AplosApiContactEmailDetail[] emails = contact.Emails;
            Assert.NotNull(emails);
            AplosApiContactEmailDetail email1 = emails[0];

            Assert.NotNull(email1);
            Assert.Equal("Work", email1.Name);
            Assert.Equal("*****@*****.**", email1.Address);
            Assert.True(email1.IsPrimary);

            AplosApiContactPhoneDetail[] phones = contact.Phones;
            Assert.NotNull(phones);
            var phone1 = phones[0];

            Assert.NotNull(phone1);
            Assert.Equal("Work", phone1.Name);
            Assert.Equal("2129470100", phone1.TelephoneNumber);
            Assert.True(phone1.IsPrimary);

            Assert.Null(contact.Addresses);
        }
示例#3
0
        public void MapContact_ReturnsNull_WithNullInput()
        {
            //Arrange
            AplosIntegrationMappingService service      = GetMappingService();
            AplosApiContactDetail          aplosContact = default;

            //Act
            PexAplosApiObject mappedAplosContact = service.Map(aplosContact);

            //Assert
            Assert.Null(mappedAplosContact);
        }
        public PexAplosApiObject Map(AplosApiContactDetail contact)
        {
            PexAplosApiObject result = default;

            if (contact != null)
            {
                result = new PexAplosApiObject
                {
                    Id   = contact.Id.ToString(),
                    Name = contact.CompanyName,
                };
            }

            return(result);
        }
示例#5
0
        public void MapContact_ReturnsPexAplosApiObject_WithNonNullInput()
        {
            //Arrange
            AplosIntegrationMappingService service      = GetMappingService();
            AplosApiContactDetail          aplosContact = new AplosApiContactDetail {
                Id = 123, CompanyName = "General Fund",
            };

            //Act
            PexAplosApiObject mappedAplosContact = service.Map(aplosContact);

            //Assert
            Assert.NotNull(mappedAplosContact);
            Assert.Equal(aplosContact.Id.ToString(), mappedAplosContact.Id);
            Assert.Equal(aplosContact.CompanyName, mappedAplosContact.Name);
        }
示例#6
0
        public void MapContacts_ReturnsPexAplosApiObject_WithNonNullInput()
        {
            //Arrange
            AplosIntegrationMappingService service = GetMappingService();

            AplosApiContactDetail[] aplosContacts = new[] { new AplosApiContactDetail {
                                                                Id = 123, CompanyName = "General Fund",
                                                            } };

            //Act
            IEnumerable <PexAplosApiObject> mappedAplosContacts = service.Map(aplosContacts);

            //Assert
            Assert.NotNull(mappedAplosContacts);

            PexAplosApiObject     mappedAplosContact = mappedAplosContacts.SingleOrDefault();
            AplosApiContactDetail aplosContact       = aplosContacts[0];

            Assert.Equal(aplosContact.Id.ToString(), mappedAplosContact.Id);
            Assert.Equal(aplosContact.CompanyName, mappedAplosContact.Name);
        }
        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);
        }