コード例 #1
0
        public void PositiveTestWithdrawFunds()
        {
            var account = new MetalAccount("acc1", "client1", MetalType.Platinum, 0, 2500M);

            account.AddFunds(5000M);
            var result1 = account.WithdrawFunds(2500M);
            var result2 = account.WithdrawFunds(0);

            Assert.AreEqual(true, result1);
            Assert.AreEqual(true, result2);
            Assert.AreEqual(2500M, account.AccountBalance);
            Assert.AreEqual(1L, account.MetalBalance);
        }
コード例 #2
0
        public void WithdrawFoundsToMetalAccount()
        {
            MetalAccount testAccount = new MetalAccount(2, "Test2", 00.00, false, 10.00, "Uran", 100);

            testAccount.WithdrawFunds(100.00);

            const double expectedSum    = 900;
            const double expectedGramms = 9;

            Assert.IsTrue(Math.Abs(testAccount.Sum - expectedSum) <= 1e-5, $"Фактическая сумма на счете {testAccount.Sum} отличается от ожидаемой {expectedSum}");

            Assert.IsTrue(Math.Abs(testAccount.GrammsMetal - expectedGramms) <= 1e-5, $"Фактическое количество грамм на счете {testAccount.GrammsMetal} отличается от ожидаемого {expectedGramms}");
        }
コード例 #3
0
        public void NegativeTestWithdrawFunds()
        {
            var account = new MetalAccount("acc1", "client1", MetalType.Aurum, 0, 1500M);

            account.AddFundsInMetal(1);

            var result1 = account.WithdrawFunds(3000M);

            Assert.AreEqual(false, result1);
            Assert.AreEqual(1500M, account.AccountBalance);
            Assert.AreEqual(1, account.MetalBalance);

            try
            {
                account.WithdrawFunds(-1500M);

                Assert.Fail();
            }
            catch (InvalidOperationException) { }

            try
            {
                account.WithdrawFunds(1000M);

                Assert.Fail();
            }
            catch (InvalidOperationException) { }

            Assert.AreEqual(1500M, account.AccountBalance);
            Assert.AreEqual(1, account.MetalBalance);

            account.ZeroingAccount();
            account.CloseAccount();
            var result2 = account.WithdrawFunds(1500M);

            Assert.AreEqual(false, result2);
            Assert.AreEqual(0M, account.AccountBalance);
            Assert.AreEqual(0L, account.MetalBalance);
        }