private static void EnsureSameCurrency(Money left, Money right) { if (left.Currency != right.Currency) { throw new InvalidOperationException(Texts.InvalidMoneyOperationDifferentCurrencies); } }
/// <summary> /// Subtrai um valor de outro da mesma moeda. /// </summary> /// <param name="right">Segundo valor.</param> /// <returns>O resultado da subtração dos valores, na mesma moeda.</returns> public Money Subtract(Money right) { return this - right; }
/// <summary> /// Soma dois valores da mesma moeda. /// </summary> /// <param name="right">Segundo valor.</param> /// <returns>A soma dos valores, na mesma moeda.</returns> public Money Add(Money right) { return this + right; }
/// <summary> /// Cria uma instância de Money utilizando a mesma moeda que outra instância. /// </summary> /// <param name="money">Money contendo a moeda a ser mantida.</param> /// <param name="amount">A quantidade na moeda.</param> /// <returns>O dinheiro na mesma moeda informada.</returns> public static Money SameCurrency(Money money, decimal amount) { return new Money(amount, money.Currency); }
public void Constructor_NoArgs_Defaults() { var target = new Money(); Assert.AreEqual(0, target.Amount); Assert.AreEqual("R$", target.Currency); }
public void Constructor_Amount_DefaultCurrency() { var target = new Money(1); Assert.AreEqual(1, target.Amount); Assert.AreEqual("R$", target.Currency); }