public PandemicGame() { var initialState = new PandemicGameState(PandemicBoard.CreateRealGameBoard()); var actionProcessorFactory = new ActionProcessorFactory(); _stateMachine = new PandemicStateMachine(initialState, actionProcessorFactory); }
public void GivenRealBoard_ProcessInit_ShouldInitialiseGameCorrectly() { var state = new PandemicGameState(PandemicBoard.CreateRealGameBoard()); _processor.ProcessAction(state, new InitGameAction()); Assert.AreEqual(2, state.InfectionRate); Assert.AreEqual(0, state.OutbreakCounter); // should have drawn 9 infection cards Assert.AreEqual(48 - 9, state.InfectionDeck.Count); Assert.AreEqual(9, state.InfectionDiscardPile.Count); // 9 cities should have cubes on them Assert.AreEqual(3, state.CityStates.Count(c => c.NumCubes(c.Colour) == 3)); Assert.AreEqual(3, state.CityStates.Count(c => c.NumCubes(c.Colour) == 2)); Assert.AreEqual(3, state.CityStates.Count(c => c.NumCubes(c.Colour) == 1)); // cubes should have been removed from pile var sumOfAllCubesInPile = ColourExtensions.AllColours() .Select(colour => state.CubePile.NumCubes(colour)) .Sum(); Assert.AreEqual(4 * 24 - 9 - 6 - 3, sumOfAllCubesInPile); }
public void RealBoard_AdjacentToAtlanta() { var board = PandemicBoard.CreateRealGameBoard(); var city = board.GetCity("Atlanta"); var adjacent = board.Adjacent(city); Assert.AreEqual(3, adjacent.Count); Assert.AreEqual(1, adjacent.Count(c => c.Name == "Chicago")); Assert.AreEqual(1, adjacent.Count(c => c.Name == "Washington")); Assert.AreEqual(1, adjacent.Count(c => c.Name == "Miami")); }
public void GivenRealBoard_StateShouldBeReadyToInit() { var state = new PandemicGameState(PandemicBoard.CreateRealGameBoard()); // no cubes on any cities Assert.AreEqual(0, state.CityStates.Sum(c => c.NumCubes(Colour.Red))); Assert.AreEqual(0, state.CityStates.Sum(c => c.NumCubes(Colour.Blue))); Assert.AreEqual(0, state.CityStates.Sum(c => c.NumCubes(Colour.Black))); Assert.AreEqual(0, state.CityStates.Sum(c => c.NumCubes(Colour.Yellow))); Assert.AreEqual(48, state.InfectionDeck.Count); Assert.AreEqual(0, state.InfectionDiscardPile.Count); Assert.AreEqual(24, state.CubePile.NumCubes(Colour.Red)); Assert.AreEqual(24, state.CubePile.NumCubes(Colour.Blue)); Assert.AreEqual(24, state.CubePile.NumCubes(Colour.Black)); Assert.AreEqual(24, state.CubePile.NumCubes(Colour.Yellow)); }
public void RealBoard_ShouldHave48Cities() { var board = PandemicBoard.CreateRealGameBoard(); Assert.AreEqual(48, board.Cities.Count); }