示例#1
0
        public static void LoadedAccountInfoIsCorrect()
        {
            FileAccountRepository TestFileRepo =
                new FileAccountRepository("C:/Users/Jeremy/source/repos/SGBank052020/SGBank.Data/AccountsForTestingLoad.txt");

            //Did the file load the correct line
            //of text into the correct slot of the array
            // 0 == 11111
            // 1 == 22222
            // 2 == 33333

            Assert.AreEqual(TestFileRepo.AccountsList[0].AccountNumber, "11111");
            Assert.AreEqual(TestFileRepo.AccountsList[1].AccountNumber, "22222");
            Assert.AreEqual(TestFileRepo.AccountsList[2].AccountNumber, "33333");

            Assert.AreEqual(TestFileRepo.AccountsList[0].Name, "Free Customer");
            Assert.AreEqual(TestFileRepo.AccountsList[1].Name, "Basic Customer");
            Assert.AreEqual(TestFileRepo.AccountsList[2].Name, "Premium Customer");

            Assert.AreEqual(TestFileRepo.AccountsList[0].Balance, 100);
            Assert.AreEqual(TestFileRepo.AccountsList[1].Balance, 100);
            Assert.AreEqual(TestFileRepo.AccountsList[2].Balance, 100);

            Assert.AreEqual(TestFileRepo.AccountsList[0].Type, AccountType.Free);
            Assert.AreEqual(TestFileRepo.AccountsList[1].Type, AccountType.Basic);
            Assert.AreEqual(TestFileRepo.AccountsList[2].Type, AccountType.Premium);
        }
示例#2
0
        public void CanReadAccountsFromFile()
        {
            FileAccountRepository repo     = new FileAccountRepository(_testDataPath);
            List <Account>        accounts = repo.GetAccountsFromFile(_testDataPath);

            Assert.AreEqual(4, accounts.Count); // there should be 4 accounts in the repo
        }
示例#3
0
        public void PositiveOrZeroAmountWithdrawalsFail(string accountNumber, decimal amount)
        {
            IAccountRepository      repo           = new FileAccountRepository();
            Account                 account        = repo.LoadAccount(accountNumber);
            AccountManager          accountManager = new AccountManager(repo);
            AccountWithdrawResponse response       = accountManager.Withdraw(account.AccountNumber, amount);

            Assert.IsFalse(response.Success);
        }
示例#4
0
        public static void CorrectAccountExtractedFromFile(string accountNumber)
        {
            FileAccountRepository TestFileRepo =
                new FileAccountRepository("C:/Users/Jeremy/source/repos/SGBank052020/SGBank.Data/AccountsForTestingDeposit.txt");
            Account a = TestFileRepo.ExtractAccount(accountNumber);


            Assert.AreEqual(a.AccountNumber, accountNumber);
        }
示例#5
0
        public void CanWithdrawFromAccountInFile(string accountNumber, decimal depositAmount, bool expectedResult)
        {
            IAccountRepository      repo           = new FileAccountRepository();
            Account                 account        = repo.LoadAccount(accountNumber);
            AccountManager          accountManager = new AccountManager(repo);
            AccountWithdrawResponse response       = accountManager.Withdraw(account.AccountNumber, depositAmount);

            Assert.AreEqual(expectedResult, response.Success);
        }
示例#6
0
        public void CanLoadAccountFromFile()
        {
            IAccountRepository repo    = new FileAccountRepository();
            Account            account = repo.LoadAccount("1");

            Assert.AreEqual("1", account.AccountNumber);
            Assert.AreEqual("Michael Jackson", account.Name);
            Assert.AreEqual(150.00M, account.Balance);
            Assert.AreEqual(AccountType.Basic, account.Type);
        }
示例#7
0
        public void CanSaveToFile(string accountNumber, string name, decimal balance, AccountType type, bool expected)
        {
            List <string> accountList = new List <string>();

            accountList.Add($"{accountNumber},{name},{balance},{type.ToString().Substring(0, 1).ToUpper()}");

            FileAccountRepository file = new FileAccountRepository();

            Assert.AreEqual(expected, file.SaveToFile(accountList, @"C:\Test\FileTest.txt"));
        }
示例#8
0
        public void CanReadDataFromFile()
        {
            FileAccountRepository repo = new FileAccountRepository(_testpath);
            Account account            = repo.LoadAccount("33333");

            Assert.AreEqual("33333", account.AccountNumber);
            Assert.AreEqual("Premium Customer", account.Name);
            Assert.AreEqual(1000, account.Balance);
            Assert.AreEqual(AccountType.Premium, account.Type);
        }
示例#9
0
        public static void CanLoadAccountTestDataFromFile(string accountNumber)
        {
            FileAccountRepository TestFileRepo =
                new FileAccountRepository("C:/Users/Jeremy/source/repos/SGBank052020/SGBank.Data/AccountsForTestingLoad.txt");
            Account a = TestFileRepo.LoadAccount(accountNumber);


            Assert.AreEqual(a.AccountNumber, accountNumber);
            Assert.IsNotNull(TestFileRepo._account);
        }
示例#10
0
        public void CanReadDataFromFile()
        {
            FileAccountRepository test = new FileAccountRepository(_path);

            var checkData = test.LoadAccount("11111");

            Assert.AreEqual(checkData.AccountNumber, "11111");
            Assert.AreEqual(checkData.Name, "Free Customer");
            Assert.AreEqual(checkData.Balance, 100);
            Assert.AreEqual(checkData.Type, AccountType.Free);
        }
        public void CanLoadFileAccountTestData(string AccountNumber)
        {
            FileAccountRepository repo     = new FileAccountRepository(_FilePath);
            List <Account>        accounts = repo.List();

            AccountNumber = "22222";
            Account account = repo.LoadAccount(AccountNumber);


            Assert.AreEqual("22222", account.AccountNumber);
        }
示例#12
0
        public void CanNotGetAccount(string accountNumber, string name, decimal balance, AccountType type)
        {
            List <string> accountList = new List <string>();

            accountList.Add($"{accountNumber},{name},{balance},{type.ToString().Substring(0, 1).ToUpper()}");
            FileAccountRepository file = new FileAccountRepository();

            file.SaveToFile(accountList, @"C:\Test\FileTest.txt");

            Account accountExtract = file.GetAccount("00000", @"C:\Test\FileTest.txt");

            Assert.IsNull(accountExtract);
        }
示例#13
0
        public void CanReadDataFromFile()
        {
            FileAccountRepository repo    = new FileAccountRepository();
            List <Account>        account = repo.GetData();

            Assert.AreEqual(3, account.Count());

            Account check = account[2];

            Assert.AreEqual("33333", check.AccountNumber);
            Assert.AreEqual("Premium Customer", check.Name);
            Assert.AreEqual(1000, check.Balance);
            Assert.AreEqual(AccountType.Premium, AccountType.Premium);
        }
示例#14
0
        public void CanReadAccountFromFile()
        {
            FileAccountRepository repo     = new FileAccountRepository("/Users/macbookpro/Documents/SG-Bootcamp/dotnet-rob-reynolds/SGBank.UI/SGBank.UI/bin/Debug/AccountsTest.txt");
            List <Account>        accounts = repo._account;

            Assert.AreEqual(3, accounts.Count);

            Account accountToCheck = accounts[1];

            Assert.AreEqual("22222", accountToCheck.AccountNumber);
            Assert.AreEqual("Basic Customer", accountToCheck.Name);
            Assert.AreEqual(500, accountToCheck.Balance);
            Assert.AreEqual("Basic", accountToCheck.Type.ToString());
        }
        public void CanCreateCvsForAccount()
        {
            FileAccountRepository repo = new FileAccountRepository();

            Account account = new Account();

            account.AccountNumber = "12345";
            account.Name          = "Rorie Lizenby";
            account.Balance       = 255;
            account.Type          = AccountType.Premium;

            string result = repo.CreateCsvForAccount(account);

            Assert.AreEqual(result, "12345,Rorie Lizenby,255,P");
        }
示例#16
0
        public void CanReadData()
        {
            FileAccountRepository repo = new FileAccountRepository(_filepath);

            List <Account> accounts = repo.AccountList();

            Assert.AreEqual(3, accounts.Count());

            Account verify = accounts[0];

            Assert.AreEqual("11111", verify.AccountNumber);
            Assert.AreEqual("Free Customer", verify.Name);
            Assert.AreEqual(100, verify.Balance);
            Assert.AreEqual(AccountType.Free, verify.Type);
        }
        public void CanReadDataFromFile()
        {
            FileAccountRepository repo = new FileAccountRepository(_FilePath);

            List <Account> accounts = repo.List();

            Assert.AreEqual(3, accounts.Count);

            Account check = accounts[1];

            Assert.AreEqual("22222", check.AccountNumber);
            Assert.AreEqual("Basic Customer", check.Name);
            Assert.AreEqual(500, check.Balance);
            Assert.AreEqual(AccountType.Basic, check.Type);
        }
示例#18
0
        public void AbleToReadFromFile()
        {
            FileAccountRepository readFile = new FileAccountRepository();

            List <Account> list = readFile.GetAccounts();

            Assert.AreEqual(3, list.Count());

            Account valid = list[1];

            Assert.AreEqual("22222", valid.AccountNumber);
            Assert.AreEqual("Basic Customer", valid.Name);
            Assert.AreEqual(500, valid.Balance);
            Assert.AreEqual(AccountType.Basic, valid.Type);
        }
        public void CanReadCvs()
        {
            FileAccountRepository repo = new FileAccountRepository();

            Account account = new Account();
            Dictionary <string, Account> accounts = new Dictionary <string, Account>();

            accounts = repo.ReadAccountCSV(_filePath);

            Account check = accounts["22222"];

            Assert.AreEqual("22222", check.AccountNumber);
            Assert.AreEqual("Basic Customer", check.Name);
            Assert.AreEqual(500, check.Balance);
            Assert.AreEqual(AccountType.Basic, check.Type);
        }
示例#20
0
        public void CanListAccount(string accountNumber, string name, decimal balance, AccountType type)
        {
            List <string> accountList = new List <string>();

            accountList.Add($"{accountNumber},{name},{balance},{type.ToString().Substring(0, 1).ToUpper()}");
            FileAccountRepository file = new FileAccountRepository();

            file.SaveToFile(accountList, @"C:\Test\FileTest.txt");

            Account accountToCheck = new Account()
            {
                AccountNumber = "00000", Name = name, Balance = balance, Type = type
            };
            List <string> accountExtract = file.ListAccount(accountToCheck, @"C:\Test\FileTest.txt");

            Assert.AreEqual(accountList[0], accountExtract[0]);
        }
示例#21
0
        public static void Start()
        {
            FileAccountRepository fileRepo = new FileAccountRepository();

            List <Account> accounts = fileRepo.GetAllAccounts();

            while (true)
            {
                Console.Clear();
                Console.WriteLine("SG Bank Application");
                Console.WriteLine("________________________");
                Console.WriteLine("1. Lookup an Account");
                Console.WriteLine("2. Deposit");
                Console.WriteLine("3. Withdraw");

                Console.WriteLine("\nQ to quit");
                Console.WriteLine("\nEnter selection");

                string userinput = Console.ReadLine();

                switch (userinput)
                {
                case "1":
                    AccountLookupWorkflow lookupWorkflow = new AccountLookupWorkflow();
                    lookupWorkflow.Execute();
                    break;

                case "2":
                    DepositWorkflow depositWorkflow = new DepositWorkflow();
                    depositWorkflow.Execute();
                    fileRepo.SaveAllAccounts(accounts);
                    break;

                case "3":
                    WithdrawWorkflow withdrawWorkflow = new WithdrawWorkflow();
                    withdrawWorkflow.Execute();
                    fileRepo.SaveAllAccounts(accounts);
                    break;

                case "Q":

                    return;
                }
            }
        }
示例#22
0
        public static void CorrectAmountDepositAndWithdrawFree(string accountNumber)
        {
            //after this files are in arraylist
            FileAccountRepository TestFileRepo =
                new FileAccountRepository("C:/Users/Jeremy/source/repos/SGBank052020/SGBank.Data/AccountsForTestingDeposit.txt");
            Account  a = TestFileRepo.LoadAccount(accountNumber);
            decimal  beginningBalance = a.Balance; //100
            IDeposit deposit          = new FreeAccountDepositRule();

            deposit.Deposit(a, 10); //stores new balance in account
            TestFileRepo.SaveAccount(a);
            Assert.AreEqual(a.Balance, 110);

            IWithdraw withdraw = new FreeAccountWithdrawRule();

            withdraw.Withdraw(a, -10);
            TestFileRepo.SaveAccount(a);
            Assert.AreEqual(a.Balance, 100);
        }
示例#23
0
        public void CanEditFileAccount()
        {
            FileAccountRepository repo = new FileAccountRepository(_testDataPath);

            Account updatedAcct = new Account
            {
                AccountNumber = "11111",
                Name          = "Free Customer",
                Balance       = 1000m,
                Type          = AccountType.Free
            };

            repo.SaveAccount(updatedAcct);

            List <Account> updatedAccounts = repo.GetAccountsFromFile(_testDataPath);

            Account modifiedAcct = updatedAccounts.Single(a => a.AccountNumber == "11111");

            Assert.AreEqual(updatedAcct.Balance, modifiedAcct.Balance); //balance should be raised to 1000m
        }
示例#24
0
        public void CanAddandUpdateAccount()
        {
            FileAccountRepository repo = new FileAccountRepository(_filepath);

            List <Account> accounts = repo.AccountList();

            Account newAccount = new Account();

            newAccount.AccountNumber = "44444";
            newAccount.Name          = "Bobby Tables";
            newAccount.Balance       = 50000;
            newAccount.Type          = AccountType.Premium;

            accounts.Add(newAccount);

            Assert.AreEqual(4, accounts.Count());

            Account verify = accounts[3];

            Assert.AreEqual("44444", verify.AccountNumber);
            Assert.AreEqual("Bobby Tables", verify.Name);
            Assert.AreEqual(50000, verify.Balance);
            Assert.AreEqual(AccountType.Premium, verify.Type);
        }
示例#25
0
        public void CanParseAcctTypeToLetter(AccountType type, string expected)
        {
            FileAccountRepository repo = new FileAccountRepository("");

            Assert.AreEqual(expected, repo.ParseAccountTypeToLetter(type));
        }
示例#26
0
        public void CanParseLetterToAcctType(string letter, AccountType expected)
        {
            FileAccountRepository repo = new FileAccountRepository("");

            Assert.AreEqual(expected, repo.ParseLetterToAccountType(letter));
        }