public void CapitalizationPercetnsWhithMinimumDates()
        {
            AccumulationAccount testAccount = new AccumulationAccount(2, "Test2", 300099, false, 100.00, 20.1);

            testAccount.CapitalizationPercetns(1, 365);

            const double expectedSum = 165.26;

            Assert.IsTrue(Math.Abs(testAccount.Sum - expectedSum) <= 1e-5,
                          $"Фактическая сумма {testAccount.Sum} отличается от ожидаемой {expectedSum}");
        }
        public void CapitalizationPercetnsOnClosedAccount()
        {
            AccumulationAccount testAccount = new AccumulationAccount(2, "Test2", 100.00, true, 100.00, 20.1);

            string expectedExceptionMessage =
                $"Счет {testAccount.Id} закрыт, операция не может быть произведена.";

            var factException =
                Assert.Throws <InvalidOperationException>(() => testAccount.CapitalizationPercetns(12, 366));

            Assert.That(factException.Message, Is.EqualTo(expectedExceptionMessage));
        }
        public void CapitalizationPercetnsWhithNegativeDaysInYear()
        {
            AccumulationAccount testAccount = new AccumulationAccount(2, "Test2", 1000, false, 100.00, 20.1);

            const string expectedExceptionMessage =
                "Заданный аргумент находится вне диапазона допустимых значений.\r\nИмя параметра: Введено неверное количество дней в году, доступные значения 365 или 356 дней";

            var factException =
                Assert.Throws <ArgumentOutOfRangeException>(() => testAccount.CapitalizationPercetns(20, 368));

            Assert.That(factException.Message, Is.EqualTo(expectedExceptionMessage));
        }
        public void CapitalizationPercetnsWhithExtraNegativeDaysInMonth()
        {
            AccumulationAccount testAccount = new AccumulationAccount(2, "Test2", 1000, false, 100.00, 20.1);

            const string expectedExceptionMessage =
                "Заданный аргумент находится вне диапазона допустимых значений.\r\nИмя параметра: Количество дней в месяце не может быть меньше или равно нулю";

            var factException =
                Assert.Throws <ArgumentOutOfRangeException>(() => testAccount.CapitalizationPercetns(-35, 365));

            Assert.That(factException.Message, Is.EqualTo(expectedExceptionMessage));
        }