예제 #1
0
        public void CannotExceedCreditLimitTest()
        {
            // Arrange
            decimal initialBalance = 1000m;
            decimal creditLimit    = 20000m;
            decimal amount         = 25000m;

            var testee = new CorporateBankAccount(initialBalance, creditLimit);

            // Act & Assert
            Assert.ThrowsException <InvalidOperationException>(() => testee.Charge(amount));
        }
예제 #2
0
        public void CannotExceedMontlyLimitTest()
        {
            // Arrange
            decimal initialBalance = 1000m;
            decimal creditLimit    = 20000m;
            decimal alreadySpent   = 14000m;
            decimal amount         = 7000m;

            var testee = new CorporateBankAccount(initialBalance, creditLimit);

            testee.SpentInCurrentMoth = alreadySpent;

            // Act & Assert
            Assert.ThrowsException <InvalidOperationException>(() => testee.Charge(amount));
        }
예제 #3
0
        public void ChargingReducesBalanceTest()
        {
            // Arrange
            decimal initialBalance       = 1000m;
            decimal creditLimit          = 20000m;
            decimal amount               = 15000m;
            decimal expectedFinalBalance = initialBalance - amount;

            var testee = new CorporateBankAccount(initialBalance, creditLimit);

            // Act
            testee.Charge(amount);

            // Assert
            Assert.AreEqual(testee.Balance, expectedFinalBalance);
        }