using System; using DesignPatterns.Test; using MbUnit.Framework; namespace DesignPatterns.Factory { [TestFixture] public class BankAccountTest { [Test] public void Should_Create_A_Cibc_Chequing_Account( ) { IBank bank = new CibcBank( ); IBankAccountFactory factory = bank.GetAccountFactory( ); IBankAccount chequingAccount = factory.CreateChequingAccount( ); Assert.IsTrue( chequingAccount.Balance.Amount == 0, "Should be zero but was: " + chequingAccount.Balance.Amount ); } [Test] public void Should_Create_A_Cibc_Savings_Account( ) { IBank bank = new CibcBank( ); IBankAccountFactory factory = bank.GetAccountFactory( ); IBankAccount savingsAccount = factory.CreateSavingsAccount( ); Assert.IsTrue( savingsAccount.Balance.Amount == 0, "Should be zero but was: " + savingsAccount.Balance.Amount ); } [Test] public void Should_Create_A_Royal_Bank_Chequing_Account( ) { IBank bank = new RoyalBank( ); IBankAccountFactory factory = bank.GetAccountFactory( ); IBankAccount chequingAccount = factory.CreateChequingAccount( ); Assert.IsTrue( chequingAccount.Balance.Amount == 0, "Should be zero but was: " + chequingAccount.Balance.Amount ); } [Test] public void Should_Create_A_Royal_Bank_Savings_Account( ) { IBank bank = new RoyalBank( ); IBankAccountFactory factory = bank.GetAccountFactory( ); IBankAccount savingsAccount = factory.CreateSavingsAccount( ); Assert.IsTrue( savingsAccount.Balance.Amount == 0, "Should be zero but was: " + savingsAccount.Balance.Amount ); } [Test] public void _Should_Have_A_Balance( ) { IBankAccount account = new BankAccount( new Money( 5 ) ); Assert.IsTrue( account.Balance.Equals( new Money( 5 ) ) ); } [Test] public void Should_Have_Account_Number( ) { string accountNumber = Guid.NewGuid( ).ToString( ); IBankAccount account = new BankAccount( new Money( 500 ), accountNumber ); Assert.IsTrue( accountNumber == account.AccountNumber ); } } }