Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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>()));
        }
Пример #4
0
        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));
        }