示例#1
0
        /// <summary>
        /// Randomly card draw operations prior to game turn.
        /// </summary>
        private void RandomlyCardDrawOperations()
        {
            ICard drawnCard = _operations.RandomlyDrawOneCardFromPlayerDeck(_activePlayer);

            _io.InfoAboutRandomlyDrawnCardMessage(drawnCard);

            if (drawnCard == null)
            {
                _isGameContinuous = _operations.BleedingOut(_activePlayer);

                if (!_isGameContinuous)
                {
                    _io.YouDefeatedMessage(_activePlayer, _opponentPlayer);
                }

                return;
            }

            bool isOverloadedHand = _operations.AddDrawnCardToTheHand(_activePlayer, drawnCard);

            if (isOverloadedHand)
            {
                _io.RandomlyDrawnCardCouldNotAddedMessage();
            }
        }
        public void BleedingOutTests()
        {
            var playerMock = new Mock <IPlayer>();

            playerMock.SetupProperty(player => player.Health, (byte)10);

            playerMock.Object.Health = 10;

            bool isGameContinues = _operations.BleedingOut(playerMock.Object);

            Assert.AreEqual(9, playerMock.Object.Health);
            Assert.AreEqual(true, isGameContinues);

            playerMock.Object.Health = 1;

            isGameContinues = _operations.BleedingOut(playerMock.Object);

            Assert.AreEqual(0, playerMock.Object.Health);
            Assert.AreEqual(false, isGameContinues);
        }