public static ConcurrentQueue <IGuessGamePlayer> ToConcurrentQueue( this IEnumerable <IParserPlayer> playersIncome, IGameRules gameRules, IGameResolver gameResolver, IMaintenanceInfo mi) { var players = new List <Player>(playersIncome.Count()); players.AddRange(playersIncome.Select(p => Player.NewPlayer(p, gameRules))); var chalg = new CheatPippingGuessHistory(mi); var chPlayers = players.InitCheaters(chalg); var thisplayers = new ConcurrentQueue <IGuessGamePlayer>(); foreach (var p in chPlayers) { thisplayers.Enqueue(p); } return(thisplayers); }
public void TestCheatersCreation() { var mimoq = new Mock <IMaintenanceInfo>(); var chalg = new CheatPippingGuessHistory(mimoq.Object); var players = GetPlayers(); var chplayers = players.InitCheaters(chalg); Assert.AreEqual(5, chplayers.Count()); var cheaters = chplayers.Where(p => p is ICheaterPlayer); Assert.AreEqual(2, cheaters.Count()); foreach (var ch in cheaters) { var cheatAlg = ch.GetType().GetField("cheatAlg", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField).GetValue(ch); Assert.AreEqual(chalg, cheatAlg); } }