示例#1
0
        Test3()     //Проверим депозитные счета, статус счёта должен быть sleep до момента окончания начисления денег
        {
            DateTime futureDateTime  = new DateTime(2021, 10, 2);
            DateTime futureDateTime2 = new DateTime(2021, 9, 2);
            DateTime futureDateTime3 = new DateTime(2021, 10, 3);

            List <(double, double)> TermForfirstBank = new List <(double, double)>();

            TermForfirstBank.Add((10000, 0.05));
            TermForfirstBank.Add((20000, 0.10));
            TermForfirstBank.Add((5000, 0.01));

            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.AddDepositAccount(clientAndrey, 300000, DateTime.Now,
                                        futureDateTime); //клиент, стартовая сумма(она же определяет процент), дата начала, дата окончания.
            BankAccount firstAndreyAccount = clientAndrey.Accounts.ElementAt(0);

            firstBank.RefreshInfoAboutAccount(firstAndreyAccount, futureDateTime2);

            Assert.AreEqual(600000, firstAndreyAccount.AccountStatus);       //наш счёт по состоянию на futureDateTime2
            Assert.AreEqual(AccountStatus.Sleep, firstAndreyAccount.Status); // должен быть Sleep.

            firstBank.RefreshInfoAboutAccount(firstAndreyAccount, futureDateTime3);
            Assert.AreEqual(AccountStatus.Active, firstAndreyAccount.Status); // Изменился на Active?
        }
示例#2
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);
        }
示例#3
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);   // а вот Васю кинули получается(
        }
示例#4
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();
        }
示例#5
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);
        }
示例#6
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);
        }
示例#7
0
        [Test()] //по всей видимости не лишним будет протестировать кредитный аккаунт
        public void Test5()
        {
            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.AddCreditAccount(clientAndrey, DateTime.Now);

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

            firstBank.CashWithdrawal(firstAndreyAccount, 200);
            Assert.AreEqual(-220, firstAndreyAccount.AccountStatus); //снимали 200, тк наш счёт 0,  комиссия 10% ещё -20 на наш счёт
        }
示例#8
0
        public void Setup()
        {
            //Условия по депозиту для банков:
            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);  //Вася у нас будет клиентом Сбера
        }