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); }
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; } }