public override bool Equals(Object anObject)
{
if (IsZero)
if (anObject is IMoney)
return ((IMoney)anObject).IsZero;
if (anObject is MoneyBag) {
MoneyBag aMoneyBag= (MoneyBag)anObject;
if (aMoneyBag.fMonies.Count != fMonies.Count)
return false;
foreach (Money m in fMonies) {
if (!aMoneyBag.Contains(m))
return false;
}
return true;
}
return false;
}
public void MoneyBagEquals() { Assert.IsFalse(fMB1.Equals(null)); Assert.IsTrue(fMB1.Equals(fMB1)); MoneyBag equal = new MoneyBag(new Money(12, "CHF"), new Money(7, "USD")); Assert.IsTrue(fMB1.Equals(equal)); Assert.IsTrue(!fMB1.Equals(f12CHF)); Assert.IsTrue(!f12CHF.Equals(fMB1)); Assert.IsTrue(!fMB1.Equals(fMB2)); }