public static void SixBasicThreats() { var players = GetPlayers(); var externalTracksByZone = new Dictionary <ZoneLocation, TrackConfiguration> { { ZoneLocation.Blue, TrackConfiguration.Track1 }, { ZoneLocation.Red, TrackConfiguration.Track2 }, { ZoneLocation.White, TrackConfiguration.Track3 }, }; const TrackConfiguration internalTrack = TrackConfiguration.Track4; var destroyer = new Destroyer(); destroyer.SetInitialPlacement(4, ZoneLocation.Blue); var fighter1 = new Fighter(); fighter1.SetInitialPlacement(5, ZoneLocation.Red); var fighter2 = new Fighter(); fighter2.SetInitialPlacement(6, ZoneLocation.White); var externalThreats = new ExternalThreat[] { destroyer, fighter1, fighter2 }; var skirmishers = new SkirmishersA(); skirmishers.SetInitialPlacement(4); var fissure = new Fissure(); fissure.SetInitialPlacement(2); var nuclearDevice = new NuclearDevice(); nuclearDevice.SetInitialPlacement(6); var internalThreats = new InternalThreat[] { skirmishers, fissure, nuclearDevice }; var bonusThreats = new Threat[0]; var game = new Game(players, internalThreats, externalThreats, bonusThreats, externalTracksByZone, internalTrack, null); game.StartGame(); for (var currentTurn = 0; currentTurn < game.NumberOfTurns + 1; currentTurn++) { game.PerformTurn(); } Assert.AreEqual(GameStatus.Won, game.GameStatus); Assert.AreEqual(4, game.SittingDuck.BlueZone.TotalDamage); Assert.AreEqual(3, game.SittingDuck.RedZone.TotalDamage); Assert.AreEqual(3, game.SittingDuck.WhiteZone.TotalDamage); Assert.AreEqual(3, game.ThreatController.DefeatedThreats.Count()); Assert.AreEqual(3, game.ThreatController.SurvivedThreats.Count()); Assert.AreEqual(30, game.TotalPoints); Assert.AreEqual(3, game.SittingDuck.Zones.ElementAt(0).CurrentDamageTokens.Count); Assert.AreEqual(3, game.SittingDuck.Zones.ElementAt(1).CurrentDamageTokens.Count); Assert.AreEqual(4, game.SittingDuck.Zones.ElementAt(2).CurrentDamageTokens.Count); }