コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }