Ejemplo n.º 1
0
        public void TestAddPutsCoinIntoCoinList()
        {
            CoinPurse coinPurse = new CoinPurse();
            MockCoin  coinAdded = new MockCoin();

            coinPurse.AddCoin(coinAdded);
            Assert.AreEqual(new List <ICoin>()
            {
                coinAdded
            }, coinPurse.Coins);
        }
Ejemplo n.º 2
0
        public void TestAddPutsCoinIntoCoinListMultipleCoins()
        {
            CoinPurse coinPurse = new CoinPurse();

            MockCoin firstCoinAdded  = new MockCoin();
            MockCoin secondCoinAdded = new MockCoin();
            MockCoin thirdCoinAdded  = new MockCoin();

            List <ICoin> expectedCoins = new List <ICoin>()
            {
                firstCoinAdded,
                secondCoinAdded,
                thirdCoinAdded
            };

            coinPurse.AddCoin(firstCoinAdded);
            coinPurse.AddCoin(secondCoinAdded);
            coinPurse.AddCoin(thirdCoinAdded);

            Assert.AreEqual(expectedCoins, coinPurse.Coins);
        }
Ejemplo n.º 3
0
        public void TestAmountAvailableReturnsTotalValueOfCoinsInPurse()
        {
            CoinPurse coinPurse = new CoinPurse();

            decimal  expectedValueOfAllCoins = 5.55m;
            MockCoin coinAdded = new MockCoin()
            {
                ValueToReturn = expectedValueOfAllCoins
            };

            coinPurse.AddCoin(coinAdded);
            Assert.AreEqual(expectedValueOfAllCoins, coinPurse.AmountAvailable);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        public void TestAmountAvailableReturnsTotalValueOfCoinsInPurseMultipleCoins()
        {
            CoinPurse coinPurse = new CoinPurse();

            decimal expectedValueOfAllCoins = 0;

            const decimal firstCoinValue = 1.25m;
            MockCoin      firstCoinAdded = new MockCoin()
            {
                ValueToReturn = firstCoinValue
            };

            expectedValueOfAllCoins += firstCoinValue;

            const decimal secondCoinValue = 0.25m;
            MockCoin      secondCoinAdded = new MockCoin()
            {
                ValueToReturn = secondCoinValue
            };

            expectedValueOfAllCoins += secondCoinValue;

            const decimal thirdCoinValue = 4.25m;
            MockCoin      thirdCoinAdded = new MockCoin()
            {
                ValueToReturn = thirdCoinValue
            };

            expectedValueOfAllCoins += thirdCoinValue;

            coinPurse.AddCoin(firstCoinAdded);
            coinPurse.AddCoin(secondCoinAdded);
            coinPurse.AddCoin(thirdCoinAdded);

            Assert.AreEqual(expectedValueOfAllCoins, coinPurse.AmountAvailable);
        }
Ejemplo n.º 6
0
        public void TestUpdatesOberserversWhenCoinIsAddedToCoinPurse()
        {
            CoinPurse coinPurse = new CoinPurse();

            MockCoinPurseObserver mockCoinPurseObserverOne = new MockCoinPurseObserver();
            MockCoinPurseObserver mockCoinPurseObserverTwo = new MockCoinPurseObserver();

            coinPurse.RegisterObserver(mockCoinPurseObserverOne);
            coinPurse.RegisterObserver(mockCoinPurseObserverTwo);

            coinPurse.AddCoin(new MockCoin());

            Assert.AreEqual(1, mockCoinPurseObserverOne.NumberOfTimesCoinPurseUpdatedCalled);
            Assert.AreEqual(1, mockCoinPurseObserverTwo.NumberOfTimesCoinPurseUpdatedCalled);
        }