public void TestGameRule_PlayCardSuccessDrawCard() { 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.Play(card)).Returns(true); GameRule rule = new GameRule(); Debug.Assert(rule.PlayCard(index, player.Object, board.Object) == PlayCardResult.Success); player.VerifyAll(); board.VerifyAll(); }
public void TestGameRule_PlayCardFailedNoSlot() { 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>(); board.Setup(x => x.Draw()).Returns <Card>(null); board.Setup(x => x.Play(card)).Returns(false); board.Setup(x => x.Discard(card)); board.Setup(x => x.Punish()); GameRule rule = new GameRule(); Debug.Assert(rule.PlayCard(index, player.Object, board.Object) == PlayCardResult.FailNoSlot); player.VerifyAll(); board.VerifyAll(); }