public void TestAcceptCallsBuildOnCoinFactoryWithSizeAndWeightPassed(CoinSize coinSize) { MockCoinFactory mockCoinFactory = new MockCoinFactory(); CoinAccepter coinAccepter = new CoinAccepter(mockCoinFactory, new MockCoinPurse(), new MockCoinReturn()); coinAccepter.Accept(coinSize); Assert.AreEqual(1, mockCoinFactory.NumberOfTimesBuildCoinCalled); Assert.AreEqual(coinSize, mockCoinFactory.LastSizeAndWeightPassed); }
public void TestAcceptAddsCoinReturnedByCoinFactoryToCoinPurseIfItHasValue() { MockCoinFactory mockCoinFactory = new MockCoinFactory(); MockCoinPurse mockCoinPurse = new MockCoinPurse(); MockCoin expectedCoin = new MockCoin { ValueToReturn = decimal.MaxValue }; mockCoinFactory.CoinToReturn = expectedCoin; CoinAccepter coinAccepter = new CoinAccepter(mockCoinFactory, mockCoinPurse, new MockCoinReturn()); coinAccepter.Accept(CoinSize.Tiny); Assert.AreEqual(1, mockCoinPurse.NumberOfTimesAddCoinWasCalled); Assert.AreEqual(1, mockCoinPurse.CoinsPassedToAddCoin.Count); Assert.AreEqual(expectedCoin, mockCoinPurse.CoinsPassedToAddCoin[0]); }
public void TestCoinWithNoValueIsPutIntoTheCoinReturnAndNotTheCoinPurse(decimal coinValue) { MockCoinFactory mockCoinFactory = new MockCoinFactory(); MockCoinPurse mockCoinPurse = new MockCoinPurse(); MockCoinReturn mockCoinReturn = new MockCoinReturn(); MockCoin mockCoin = new MockCoin { ValueToReturn = coinValue }; mockCoinFactory.CoinToReturn = mockCoin; CoinAccepter coinAccepter = new CoinAccepter(mockCoinFactory, mockCoinPurse, mockCoinReturn); coinAccepter.Accept(CoinSize.Large); Assert.AreSame(mockCoin, mockCoinReturn.CoinsPassedToAddCoin[0]); Assert.AreEqual(1, mockCoinReturn.NumberOfTimesAddCoinCalled); Assert.AreEqual(0, mockCoinPurse.NumberOfTimesAddCoinWasCalled); Assert.AreEqual(0, mockCoinPurse.Coins.Count); }