using NUnit.Framework; using PokerTournamentManager.Framework; using PokerTournamentManager.Framework.Exceptions; [TestFixture] public class MoneyTests { #region CreateNewMoney [Test] public void CreateNewMoneyWithValidAmount() { int expectedAmount = 100; Money money = new Money(expectedAmount); Assert.IsNotNull(money.Amount); Assert.AreEqual(Money.CurrencyCodes.US_DOLLAR, money.CurrencyCode); Assert.AreEqual(expectedAmount, money.Amount); } [Test] [ExpectedException(typeof(System.ArgumentOutOfRangeException))] public void CreateNewMoneyWithInvalidAmount() { int invalidAmount = -10; new Money(invalidAmount); } #endregion #region AddMonies [Test] public void AddMonies() { Money money1 = new Money(10); Money money2 = new Money(15); Money total = money1 + money2; Assert.AreEqual(25, total.Amount); } [Test] [ExpectedException(typeof(IncorrectCurrencyException))] public void AddMoniesWithDifferentCurrencies() { Money money1 = new Money(10, Money.CurrencyCodes.US_DOLLAR); Money money2 = new Money(15, "FOO"); Money total = money1 + money2; } #endregion #region Equals [Test] public void EqualsWithSameValuesAndSameCurrencies() { Assert.AreEqual( new Money(10, Money.CurrencyCodes.US_DOLLAR), new Money(10, Money.CurrencyCodes.US_DOLLAR)); } [Test] public void EqualsWithDifferentValuesAndSameCurrencies() { Assert.AreNotEqual( new Money(10, Money.CurrencyCodes.US_DOLLAR), new Money(15, Money.CurrencyCodes.US_DOLLAR)); } [Test] public void EqualsWithSameValuesAndDifferentCurrencies() { Assert.AreNotEqual( new Money(10, Money.CurrencyCodes.US_DOLLAR), new Money(10, Money.CurrencyCodes.GB_POUND)); } [Test] public void EqualsWithDifferentValuesAndDifferentCurrencies() { Assert.AreNotEqual( new Money(10, Money.CurrencyCodes.US_DOLLAR), new Money(15, Money.CurrencyCodes.GB_POUND)); } #endregion }