Ejemplo n.º 1
0
        public void SetupTests()
        {
            mocks = new MockRepository(MockBehavior.Loose);

            playerZero = new Player(PlayerColor.Blue);
            playerOne  = new Player(PlayerColor.Red);
            playerList = new List <Player>
            {
                playerZero,
                playerOne
            };

            board         = new GameBoard();
            bank          = new Bank();
            presenterMock = new Mock <Presenter>(Mock.Of <View>());
            model         = new GameModel(board, bank, playerList, presenterMock.Object);

            state = new DoTrade(model);
            var realStates = new HashSet <TurnState>
            {
                state
            };

            TestUtil.SetupStateDictionary(model, mocks, realStates);

            GivePlayerFourOfAll(playerZero);
        }
Ejemplo n.º 2
0
        public void WhenItIsTimeForThePlayerTo(Mock <Player> playerMock, string action)
        {
            var       player = playerMock.Object;
            TurnState currentState;
            var       model = context.Get <GameModel>();

            model.ActivePlayer = player;
            switch (action.Trim())
            {
            case "build":
                currentState = new Build(model);
                break;

            case "place a city":
                currentState = new WaitCity(model);
                break;

            case "place a settlement":
                currentState = new WaitSettlement(model);
                break;

            case "place a road":
                currentState = new WaitRoad(model);
                break;

            case "roll the dice":
                currentState = new WaitRollDice(model);
                break;

            case "trade":
                currentState = new Trade(model);
                break;

            case "doTrade":
                currentState = new DoTrade(model);
                break;

            case "rob people":
                currentState = new MoveRobber(model)
                {
                    ReturnStateType = typeof(Trade)
                };
                break;

            case "steal a resource":
                var rob = new Rob(model)
                {
                    ReturnStateType = typeof(Trade)
                };
                rob.SetSelectedHex(2);
                currentState = rob;
                break;

            default:
                throw new ArgumentException("Unhandled case");
            }

            currentState.OnEnter();
            context["CurrentState"] = currentState;
            if (context.TryGetValue(out TurnManager manager))
            {
                manager.CurrentState = currentState;
            }
        }