Ejemplo n.º 1
0
        public void BuyDevelopmentCard_GotResources_DevelopmentCardPurchasedEventIsRaised()
        {
            // Arrange
            var knightDevelopmentCard = new KnightDevelopmentCard();
            var testInstances         = this.TestSetup(this.CreateMockOneCardDevelopmentCardHolder(knightDevelopmentCard));

            testInstances.MainPlayer.AddResources(ResourceClutch.DevelopmentCard);
            var localGameController = testInstances.LocalGameController;

            GameToken turnToken = null;

            localGameController.StartPlayerTurnEvent = (GameToken t) => { turnToken = t; };

            ErrorDetails errorDetails = null;

            localGameController.ErrorRaisedEvent = (ErrorDetails e) => { errorDetails = e; };

            DevelopmentCard purchaseddDevelopmentCard = null;

            localGameController.DevelopmentCardPurchasedEvent = (DevelopmentCard d) => { purchaseddDevelopmentCard = d; };

            localGameController.StartGamePlay();

            // Act
            localGameController.BuyDevelopmentCard(turnToken);

            // Assert
            purchaseddDevelopmentCard.ShouldNotBeNull();
            purchaseddDevelopmentCard.ShouldBeSameAs(knightDevelopmentCard);
            errorDetails.ShouldBeNull();
        }
        public void BuildCity_OnExistingSettlementBelongingToPlayer_CityBuiltEventRaised()
        {
            // Arrange
            MockDice           mockDice = null;
            MockPlayer         player;
            MockComputerPlayer firstOpponent, secondOpponent, thirdOpponent;
            var localGameController = this.CreateLocalGameControllerAndCompleteGameSetup(out mockDice, out player, out firstOpponent, out secondOpponent, out thirdOpponent);

            mockDice.AddSequence(new[] { 8u });
            player.AddResources(ResourceClutch.City);

            Boolean cityBuilt = false;

            localGameController.CityBuiltEvent = c => { cityBuilt = true; };

            GameToken turnToken = null;

            localGameController.StartPlayerTurnEvent = (GameToken t) => { turnToken = t; };

            ErrorDetails errorDetails = null;

            localGameController.ErrorRaisedEvent = (ErrorDetails e) => { errorDetails = e; };

            localGameController.StartGamePlay();

            // Act
            localGameController.BuildCity(turnToken, MainSettlementOneLocation);

            // Assert
            cityBuilt.ShouldBeTrue();
            errorDetails.ShouldBeNull();
        }