示例#1
0
        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();
        }
示例#2
0
        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();
        }