// ****************************************************************
// This is free software licensed under the NUnit license. You
// may obtain a copy of the license as well as information regarding
// copyright ownership at http://nunit.org/?p=license&r=2.4.
// ****************************************************************
namespace NUnit.Samples.Money
{
/// The common interface for simple Monies and MoneyBags.
interface IMoney
{
/// Adds a money to this money.
IMoney Add(IMoney m);
/// Adds a simple Money to this money. This is a helper method for
/// implementing double dispatch.
IMoney AddMoney(Money m);
/// Adds a MoneyBag to this money. This is a helper method for
/// implementing double dispatch.
IMoney AddMoneyBag(MoneyBag s);
/// True if this money is zero.
bool IsZero { get; }
/// Multiplies a money by the given factor.
IMoney Multiply(int factor);
/// Negates this money.
IMoney Negate();
/// Subtracts a money from this money.
IMoney Subtract(IMoney m);
}
}