public void TestRenderScoreBoardWhenNoPlayersInScoreBoard() { var mockedWrited = new Mock<HelperWriter>(); Console.SetOut(mockedWrited.Object); ConsoleRenderer rende = new ConsoleRenderer(new BorderStyleFactory()); Scoreboard scoreBoard = Scoreboard.Instance; scoreBoard.Clear(); rende.RenderScoreboard(scoreBoard); mockedWrited.Verify(w => w.Write(It.Is<string>(str => str == "No top players yet.")), Times.AtLeastOnce); }
public void TestRenderScoreboardToPrintCorrectPlayers() { var mockedWrited = new Mock<HelperWriter>(); Console.SetOut(mockedWrited.Object); ConsoleRenderer rende = new ConsoleRenderer(new BorderStyleFactory()); Scoreboard scoreBoard = Scoreboard.Instance; IDictionary<int, string> playerNamesWithMoves = new SortedDictionary<int, string>() { {202, "john"}, {444, "largeBox"}, {391, "gamer"}, {20, "hacker"}, {1023, "infinity"} }; IPlayer player; foreach (var item in playerNamesWithMoves.Reverse()) { player = new Player(item.Value); player.Moves = item.Key; scoreBoard.AddPlayer(player); } rende.RenderScoreboard(scoreBoard); mockedWrited.Verify(w => w.Write(It.Is<string>(str => str.Contains("->"))), Times.Exactly(scoreBoard.TopPlayers.Count)); mockedWrited.Verify(w => w.Write(It.Is<string>(str => playerNamesWithMoves.Values.Any(name => str.Contains(name)) || playerNamesWithMoves.Keys.Any(moves => int.TryParse(str, out moves)))), Times.AtLeast(scoreBoard.TopPlayers.Count)); }