Esempio n. 1
0
        public async Task ReturnDataGivenAccountNumber1234()
        {
            var result = await _accountRepository.Balance(1234);

            List <string> validCurrs = new List <string> {
                "USD", "THB"
            };

            Assert.AreEqual(true, result.Successful, "Balance for account number 1234 should success");
            Assert.AreEqual(1234, result.AccountNumber, "Balance for account number 1234 should have AccuntNumber: 1234");
            Assert.AreEqual(2, result.AccountBalances.Count, "Balance for account number 1234 should return 2 items of AccountBalance");
            Assert.AreEqual(1, result.AccountBalances.Where(a => a.Currency == "THB").Count(), "Balance for account number 1234 should return 1 items of AccountBalance with currency: THB");
            Assert.AreEqual(1, result.AccountBalances.Where(a => a.Currency == "USD").Count(), "Balance for account number 1234 should return 1 items of AccountBalance with currency: USD");
            Assert.AreEqual(5000, result.AccountBalances.First(a => a.Currency == "THB").Balance, "Balance for account number 1234 should return balance 22500 for currency: THB");
            Assert.AreEqual(250, result.AccountBalances.First(a => a.Currency == "USD").Balance, "Balance for account number 1234 should return balance 0 for currency: USD");

            //Negative
            Assert.AreEqual(0, result.AccountBalances.Where(a => !validCurrs.Contains(a.Currency)).Count(), "Balance for account number 1234 should return no items of AccountBalance with currency except THB, USD");
            Assert.AreEqual(null, result.Currency, "Balance for account number 1234 should not return currency in root");
            Assert.AreEqual(null, result.Balance, "Balance for account number 1234 should not amount currency in root");
        }