Exemple #1
0
        private void AssertNextDevelopmentCardIsCorrect(DevelopmentCardHolder developmentCardHolder, DevelopmentCardTypes expectedType)
        {
            DevelopmentCard developmentCard;

            developmentCardHolder.TryGetNextCard(out developmentCard).ShouldBeTrue();
            developmentCard.Type.ShouldBe(expectedType);
        }
Exemple #2
0
        public void TryGetNextCard_OnConstruction_ReturnsTrue()
        {
            var developmentCardHolder = new DevelopmentCardHolder();

            DevelopmentCard developmentCard;
            var             result = developmentCardHolder.TryGetNextCard(out developmentCard);

            result.ShouldBeTrue();
            developmentCard.ShouldNotBeNull();
        }
        public static TestInstances CreateTestInstances(MockDice mockNumGenerator, PlayerSetup playerSetup, IDevelopmentCardHolder developmentCardHolder, GameBoard gameBoard)
        {
            MockDice mockNumberGenerator = null;

            if (mockNumGenerator != null)
            {
                mockNumberGenerator = mockNumGenerator;
            }
            else
            {
                mockNumberGenerator = LocalGameControllerTestCreator.CreateMockNumberGenerator();
            }

            MockPlayer         player;
            MockComputerPlayer firstOpponent, secondOpponent, thirdOpponent;
            IPlayerFactory     playerPool = null;

            if (playerSetup != null)
            {
                player         = playerSetup.Player;
                firstOpponent  = playerSetup.FirstOpponent;
                secondOpponent = playerSetup.SecondOpponent;
                thirdOpponent  = playerSetup.ThirdOpponent;
                playerPool     = playerSetup.PlayerPool;
            }
            else
            {
                LocalGameControllerTestCreator.CreateDefaultPlayerInstances(out player, out firstOpponent, out secondOpponent, out thirdOpponent);
                playerPool = LocalGameControllerTestCreator.CreateMockPlayerPool(player, firstOpponent, secondOpponent, thirdOpponent);
            }

            if (developmentCardHolder == null)
            {
                developmentCardHolder = new DevelopmentCardHolder();
            }

            if (gameBoard == null)
            {
                gameBoard = new GameBoard(BoardSizes.Standard);
            }

            var localGameController = new LocalGameController(mockNumberGenerator, playerPool, gameBoard, developmentCardHolder);

            localGameController.ErrorRaisedEvent = (ErrorDetails e) => { throw new Exception(e.Message); };

            var testInstances = new TestInstances(localGameController, player, firstOpponent, secondOpponent, thirdOpponent, mockNumberGenerator);

            return(testInstances);
        }
Exemple #4
0
        public void Cstr_InDescendingOrder_ReturnsExpectedOrder()
        {
            var index           = -1;
            var indexes         = new System.Collections.Generic.Queue <Int32>(new[] { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 });
            var numberSequencer = Substitute.For <DevelopmentCardHolder.IIndexSequence>();

            numberSequencer
            .TryGetNextIndex(out index)
            .ReturnsForAnyArgs(x => {
                if (indexes.Count > 0)
                {
                    x[0] = indexes.Dequeue();
                    return(true);
                }

                x[0] = -1;
                return(false);
            });

            var developmentCardHolder = new DevelopmentCardHolder(numberSequencer);

            for (var i = 0; i < 5; i++)
            {
                this.AssertNextDevelopmentCardIsCorrect(developmentCardHolder, DevelopmentCardTypes.VictoryPoint);
            }

            for (var i = 0; i < 2; i++)
            {
                this.AssertNextDevelopmentCardIsCorrect(developmentCardHolder, DevelopmentCardTypes.YearOfPlenty);
            }

            for (var i = 0; i < 2; i++)
            {
                this.AssertNextDevelopmentCardIsCorrect(developmentCardHolder, DevelopmentCardTypes.RoadBuilding);
            }

            for (var i = 0; i < 2; i++)
            {
                this.AssertNextDevelopmentCardIsCorrect(developmentCardHolder, DevelopmentCardTypes.Monopoly);
            }

            for (var i = 0; i < 14; i++)
            {
                this.AssertNextDevelopmentCardIsCorrect(developmentCardHolder, DevelopmentCardTypes.Knight);
            }

            developmentCardHolder.HasCards.ShouldBeFalse();
        }
Exemple #5
0
        public void HasCards_OnConstruction_ReturnsTrue()
        {
            var developmentCardHolder = new DevelopmentCardHolder();

            developmentCardHolder.HasCards.ShouldBeTrue();
        }