[InlineData(0, 4, 2, false, true, true)]//total 12 public void VerifyWinConditionTest(int settlements, int cities, int victoryCards, bool longestRoad, bool biggestArmy, bool expected) { var player = new Mock<IPlayer>(); player.Setup(p => p.Cards).Returns(CreateVictoryCards(victoryCards)); var board = new Mock<IBoard>(); board.Setup(b => b.GetEstablishments(player.Object)).Returns(CreateEstablishments(settlements, 1).Concat(CreateEstablishments(cities, 2))); var roadAchievement = CreateAchievement(longestRoad ? player.Object : new Mock<IPlayer>().Object); var armhyAchievement = CreateAchievement(biggestArmy ? player.Object : new Mock<IPlayer>().Object); var bank = new Bank(board.Object, new[] { roadAchievement, armhyAchievement }); bool result = bank.VerifyWinCondition(player.Object); Assert.Equal(expected, result); }
public void CantVerifyWinConditionOnNullPlayer() { var board = new Mock<IBoard>(); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); Assert.Throws<ArgumentNullException>(() => bank.VerifyWinCondition(null)); }