public void TestGameRule_DiscardCardSuccessDrawCard() { var player = new Mock <IHanabiPlayer>(); CardIdType id = new CardIdType(0); CardIndexType index = new CardIndexType(0); Card card = new Card(id, index, CardColorType.Blue, CardValueType.Value1); HandCard handCard = new HandCard(card); player.Setup(x => x.GetHandCard(index)).Returns(handCard); player.Setup(x => x.PlayCard(index)); var board = new Mock <IGameBoard>(); CardIdType newId = new CardIdType(1); CardIndexType newIndex = new CardIndexType(1); Card newCard = new Card(newId, newIndex, CardColorType.Blue, CardValueType.Value1); board.Setup(x => x.Draw()).Returns(newCard); board.Setup(x => x.Discard(handCard.card)); board.Setup(x => x.Reward()); GameRule rule = new GameRule(); Debug.Assert(rule.DiscardCard(index, player.Object, board.Object) == DiscardResult.Success); player.VerifyAll(); board.VerifyAll(); }
public void TestGameRule_DiscardCardFailed() { var player = new Mock <IHanabiPlayer>(); CardIndexType index = new CardIndexType(0); player.Setup(x => x.GetHandCard(index)).Returns <Card>(null); var board = new Mock <IGameBoard>(); GameRule rule = new GameRule(); Debug.Assert(rule.DiscardCard(index, player.Object, board.Object) == DiscardResult.InvalidCardIndex); player.VerifyAll(); board.VerifyAll(); }