public void DifferentResourceHarborGetsIgnored() { var board = new Mock<IBoard>(); var player = new Mock<IPlayer>(); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); var harbor = new Mock<IHarbor>(); harbor.Setup(h => h.Discount).Returns(MaterialType.Wool); board.Setup(b => b.GetHarbors(player.Object)).Returns(new IHarbor[] { harbor.Object }); MaterialType[] result = bank.GetInvestmentCost(MaterialType.Grain, player.Object); MaterialType[] expected = { MaterialType.Grain, MaterialType.Grain, MaterialType.Grain, MaterialType.Grain }; Assert.Equal(expected, result); }
public void GetInvestmentCostUsesCheapestHarbor() { var board = new Mock<IBoard>(); var player = new Mock<IPlayer>(); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); var unsourcedHarbor = new Mock<IHarbor>(); unsourcedHarbor.Setup(h => h.Discount).Returns(MaterialType.Unsourced); var resourceHarbor = new Mock<IHarbor>(); resourceHarbor.Setup(h => h.Discount).Returns(MaterialType.Grain); board.Setup(b => b.GetHarbors(player.Object)).Returns(new IHarbor[] { unsourcedHarbor.Object, resourceHarbor.Object }); MaterialType[] result = bank.GetInvestmentCost(MaterialType.Grain, player.Object); MaterialType[] expected = { MaterialType.Grain, MaterialType.Grain }; Assert.Equal(expected, result); }
public void GetInvestmentFailsOnInvalidResource(MaterialType material) { var board = new Mock<IBoard>(); var player = new Mock<IPlayer>(); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); Assert.Throws<ArgumentException>(() => bank.GetInvestmentCost(material, player.Object)); }
public void GetInvestmentCostDefaultReturns4() { var board = new Mock<IBoard>(); var player = new Mock<IPlayer>(); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); MaterialType[] result = bank.GetInvestmentCost(MaterialType.Grain, player.Object); MaterialType[] expected = { MaterialType.Grain, MaterialType.Grain, MaterialType.Grain, MaterialType.Grain }; Assert.Equal(expected, result); }
public void GetInvestmentCostNeedsPlayer() { var board = new Mock<IBoard>(); var achievements = new IAchievement[0]; var bank = new Bank(board.Object, achievements); Assert.Throws<ArgumentNullException>(() => bank.GetInvestmentCost(MaterialType.Grain, null)); }