Example #1
0
        [Test()] //Тестируем пополнение и снятие средств с счетов
        public void Test1()
        {
            List <(double, double)> TermForfirstBank = new List <(double, double)>();

            TermForfirstBank.Add((10000, 0.1));
            TermForfirstBank.Add((20000, 0.2));

            Bank alfaBank = new Bank(TermForfirstBank, 0.1, 0.2, 10000, 3000);

            IAbstractBank firstBank = alfaBank;

            Adress       newAdress       = new Adress("Невского", 10, "Питер");
            PassportData firstPersonData = new PassportData(1111, 22222);
            Person       Andrey          = new Person("Андрей", "Загудько", newAdress, firstPersonData);

            Client clientAndrey = firstBank.CreateClient(Andrey);

            firstBank.AddDebitAccount(clientAndrey, DateTime.Now);

            BankAccount firstAndreyAccount = clientAndrey.Accounts.ElementAt(0);

            firstBank.Replenishment(firstAndreyAccount, 1000); //Закидываем деньги на аккаунт

            Assert.AreEqual(1000, firstAndreyAccount.AccountStatus);

            firstBank.CashWithdrawal(firstAndreyAccount, 200); //Снимаем деньги с аккаунта

            Assert.AreEqual(800, firstAndreyAccount.AccountStatus);

            firstBank.CashWithdrawal(firstAndreyAccount,
                                     1100); //Снимаем больше чем имеем, поскольку аккаунт дебитовый деньги не снимутся

            Assert.AreEqual(800, firstAndreyAccount.AccountStatus);
        }
Example #2
0
        [Test()] // Проверим откат наших операций
        public void Test4()
        {
            List <(double, double)> TermForfirstBank   = new List <(double, double)>();
            List <(double, double)> TermForSecondtBank = new List <(double, double)>();

            TermForfirstBank.Add((10000, 0.1));
            TermForfirstBank.Add((20000, 0.2));

            TermForSecondtBank.Add((10000, 0.3));
            TermForSecondtBank.Add((30000, 0.4));

            Bank alfaBank = new Bank(TermForfirstBank, 0.1, 0.2, 10000, 3000);
            Bank sberBank = new Bank(TermForSecondtBank, 0.2, 0.1, 5000, 1000);

            IAbstractBank firstBank  = alfaBank;
            IAbstractBank secondBank = sberBank;

            Adress newAdress        = new Adress("Невского", 10, "Питер");
            Adress additionalAdress = new Adress("Невского", 11, "Питер");

            PassportData firstPersonData  = new PassportData(1111, 22222);
            PassportData secondPersonData = new PassportData(1111, 00000);

            Person Andrey = new Person("Андрей", "Загудько", newAdress, firstPersonData);
            Person Vasya  = new Person("Вася", "Дударь");

            Client clientAndrey = firstBank.CreateClient(Andrey);
            Client clientVasya  = secondBank.CreateClient(Vasya);

            firstBank.AddDebitAccount(clientAndrey, DateTime.Now);
            secondBank.AddDebitAccount(clientVasya, DateTime.Now);

            BankAccount firstAndreyAccount = clientAndrey.Accounts.ElementAt(0);
            BankAccount firstVasyaAccount  = clientVasya.Accounts.ElementAt(0);

            firstBank.Replenishment(firstAndreyAccount, 2000);
            secondBank.Replenishment(firstVasyaAccount, 100);

            firstBank.Transfer(firstAndreyAccount, firstVasyaAccount, 400,
                               sberBank);                            // Переводим 400 рублей Васе, зная что его счёт принадлежит сбербанку.

            Assert.AreEqual(1600, firstAndreyAccount.AccountStatus); // убеждаемся что Андрей отправил деньги
            Assert.AreEqual(500, firstVasyaAccount.AccountStatus);   // Убеждаемся что Вася получил деньги

            firstBank.ReturnMoney(clientAndrey,
                                  1);                                //тк это следующая после пополнения операция, берём первый элемент из истории операции Андрея

            Assert.AreEqual(2000, firstAndreyAccount.AccountStatus); // Деньги вернулись обратно
            Assert.AreEqual(100, firstVasyaAccount.AccountStatus);   // а вот Васю кинули получается(
        }
Example #3
0
        public void Test2() //Проверяем начисление процента на остаток // Дебитовый счёт
        {
            List <(double, double)> TermForfirstBank = new List <(double, double)>();

            TermForfirstBank.Add((10000, 0.1));
            TermForfirstBank.Add((20000, 0.2));

            Bank alfaBank = new Bank(TermForfirstBank, 0.1, 0.02, 10000, 3000);

            IAbstractBank firstBank = alfaBank;

            Adress       newAdress       = new Adress("Невского", 10, "Питер");
            PassportData firstPersonData = new PassportData(1111, 22222);
            Person       Andrey          = new Person("Андрей", "Загудько", newAdress, firstPersonData);

            Client clientAndrey = firstBank.CreateClient(Andrey);

            firstBank.AddDebitAccount(clientAndrey, DateTime.Now);

            BankAccount firstAndreyAccount = clientAndrey.Accounts.ElementAt(0);

            firstBank.Replenishment(firstAndreyAccount, 1000);


            DateTime futureDateTime = new DateTime(2021, 10, 2);

            firstBank.RefreshInfoAboutAccount(firstAndreyAccount, futureDateTime);
            Assert.AreEqual(1220,
                            firstAndreyAccount
                            .AccountStatus); // узнаем какой будет счёт после начисления процента на остаток в октябре 21 года


            DateTime futureDateTime2 = new DateTime(2021, 12, 2);

            firstBank.RefreshInfoAboutAccount(firstAndreyAccount, futureDateTime2);
            Assert.AreEqual(1293.2, firstAndreyAccount.AccountStatus); // Какой будет счёт ещё через два месяца.


            Assert.Pass();
        }
Example #4
0
        [Test()] //тест строителя персоны
        public void Test6()
        {
            List <(double, double)> TermForfirstBank = new List <(double, double)>();

            TermForfirstBank.Add((10000, 0.1));
            TermForfirstBank.Add((20000, 0.2));

            Bank alfaBank = new Bank(TermForfirstBank, 0.1, 0.02, 10000, 1000);

            IAbstractBank firstBank = alfaBank;

            BuildPerson Andrey = new BuildPerson();

            Andrey.AddMainInfo("Anrey", "Loskutov");


            Adress       newAdress       = new Adress("Невского", 10, "Питер");
            PassportData firstPersonData = new PassportData(1111, 22222);

            Client clientAndrey = firstBank.CreateClient(Andrey.ReturnPersonInfo());

            firstBank.AddDebitAccount(clientAndrey, DateTime.Now);

            BankAccount firstAndreyAccount = clientAndrey.Accounts.ElementAt(0);

            firstBank.Replenishment(firstAndreyAccount, 2000);
            firstBank.CashWithdrawal(firstAndreyAccount, 1500);
            Assert.AreEqual(2000, firstAndreyAccount.AccountStatus);

            Andrey.AddPassportData(firstPersonData);
            Andrey.AddAdress(newAdress);

            firstBank.RefreshClientInfo(clientAndrey, Andrey.ReturnPersonInfo());//Необходимо обновить инфу о клиенте

            firstBank.CashWithdrawal(firstAndreyAccount, 1500);
            Assert.AreEqual(500, firstAndreyAccount.AccountStatus);
        }
Example #5
0
        static void Main(string[] args)
        {
            List <(double, double)> TermForfirstBank = new List <(double, double)>();

            TermForfirstBank.Add((10000, 0.1));
            TermForfirstBank.Add((20000, 0.2));

            Bank alfaBank = new Bank(TermForfirstBank, 0.1, 0.02, 10000, 3000);

            IAbstractBank firstBank = alfaBank;

            Adress       newAdress       = new Adress("Невского", 10, "Питер");
            PassportData firstPersonData = new PassportData(1111, 22222);
            //Person Andrey = new Person("Андрей", "Загудько", newAdress, firstPersonData);

            BuildPerson newInfo = new BuildPerson();

            newInfo.AddMainInfo("Andrey", "Loskutov");
            newInfo.AddAdress(newAdress);
            newInfo.AddPassportData(firstPersonData);
            Person Andrey = newInfo.ReturnPersonInfo();


            Client clientAndrey = firstBank.CreateClient(Andrey);

            firstBank.AddCreditAccount(clientAndrey, DateTime.Now);

            BankAccount firstAndreyAccount = clientAndrey.Accounts.ElementAt(0);

            firstBank.Replenishment(firstAndreyAccount, 1000);

            firstBank.CashWithdrawal(firstAndreyAccount, 1000);

            firstBank.CashWithdrawal(firstAndreyAccount, 200);

            Console.WriteLine(firstAndreyAccount.AccountStatus);
        }