public void TestClearNotifiesObservers()
        {
            CoinPurse coinPurse = new CoinPurse();
            MockCoin mockCoin = new MockCoin();
            MockCoinPurseObserver mockCoinPurseObserver = new MockCoinPurseObserver();

            coinPurse.RegisterObserver(mockCoinPurseObserver);
            coinPurse.Clear();

            Assert.AreEqual(1, mockCoinPurseObserver.NumberOfTimesCoinPurseUpdatedCalled);
        }
        public void TestClearReturnsAllCoinsAndEmptiesPurse()
        {
            CoinPurse coinPurse = new CoinPurse();
            MockCoin mockCoin = new MockCoin();

            coinPurse.AddCoin(mockCoin);

            List<ICoin> coinsReturnedFromClear = coinPurse.Clear();

            Assert.AreEqual(1, coinsReturnedFromClear.Count);
            Assert.AreEqual(mockCoin, coinsReturnedFromClear[0]);

            Assert.AreEqual(0, coinPurse.Coins.Count);
        }