public void BuyCardFailsWhenNoMoreCardsLeft() { var board = new Mock<IBoard>(); var player = new Mock<IPlayer>(); var turn = new Mock<ITurn>(); player.Setup(p => p.HasResources(Bank.DEVELOPMENTCARD_COST)).Returns(true); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); for (int i = 0; i < 25; i++) { bank.BuyDevelopmentCard(player.Object, turn.Object); } Assert.Throws<InvalidOperationException>(() => bank.BuyDevelopmentCard(player.Object, turn.Object)); }
public void BuyDevelopmentCardFailsIfPlayerHasNoResources() { var board = new Mock<IBoard>(); var player = new Mock<IPlayer>(); var turn = new Mock<ITurn>(); player.Setup(p => p.HasResources(Bank.DEVELOPMENTCARD_COST)).Returns(false); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); Assert.Throws<InvalidOperationException>(() => bank.BuyDevelopmentCard(player.Object, turn.Object)); }
public void BuyDevelopmentCardTest() { var board = new Mock<IBoard>(); var player = new Mock<IPlayer>(); var turn = new Mock<ITurn>(); player.Setup(p => p.HasResources(Bank.DEVELOPMENTCARD_COST)).Returns(true); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); bank.BuyDevelopmentCard(player.Object, turn.Object); player.Verify(p => p.TakeResources(Bank.DEVELOPMENTCARD_COST)); player.Verify(p => p.AddCard(It.IsAny<IDevelopmentCard>())); }
public void BuyDevelopmentCantBeCalledWithoutPlayer(IPlayer player, ITurn turn) { var board = new Mock<IBoard>(); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); Assert.Throws<ArgumentNullException>(() => bank.BuyDevelopmentCard(player, turn)); }