diff --git a/Week 10 - Account Library/Account.cs b/Week 10 - Account Library/Account.cs index 13fb71d..11d26ca 100644 --- a/Week 10 - Account Library/Account.cs +++ b/Week 10 - Account Library/Account.cs @@ -8,20 +8,29 @@ namespace Week_10___Account_Library { public class Account { + private decimal _balance; private decimal _overdraftLimit; public decimal Balance => _balance; public decimal OverdraftLimit => _overdraftLimit; + public AccountState StateOfAccount { get; } - void Deposit(decimal amount) + private bool ValidateAmount(decimal amount) { - _balance += amount; + return amount >= 0; } - void Withdraw(decimal amount) + public void Deposit(decimal amount) { - _balance -= amount; + if (ValidateAmount(amount)) + _balance += amount; + } + + public void Withdraw(decimal amount) + { + if (ValidateAmount(amount)) + _balance -= amount; } public Account(decimal balance, decimal overdraftLimit) @@ -30,4 +39,12 @@ namespace Week_10___Account_Library _overdraftLimit = overdraftLimit; } } + + public enum AccountState + { + Safe, + InOD, + ODLimit, + None + } } diff --git a/Week 10 - TDD Tests/TDDTests.cs b/Week 10 - TDD Tests/TDDTests.cs index 276a86b..db247a1 100644 --- a/Week 10 - TDD Tests/TDDTests.cs +++ b/Week 10 - TDD Tests/TDDTests.cs @@ -1,15 +1,43 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using System; +using Week_10___Account_Library; namespace Week_10___TDD_Tests { [TestClass] public class TDDTests { - [TestMethod] - public void TestMethod1() + private Account account; + [TestInitialize] + public void InitTests() { + account = new Account(1000, 500); + } + [TestMethod] + public void DepositAmount() + { + account.Deposit(200); + Assert.AreEqual(1200, account.Balance); + } + + [TestMethod] + public void WithdrawAmount() + { + account.Withdraw(200); + Assert.AreEqual(800, account.Balance); + } + + [TestMethod, ExpectedException(typeof(ArgumentOutOfRangeException))] + public void WithdrawNegative() + { + account.Withdraw(-200); + } + + [TestMethod, ExpectedException(typeof(ArgumentOutOfRangeException))] + public void DepositNegative() + { + account.Deposit(-200); } } }