public void ExpectScoreboardAddMethodToAddScoreToTopsScores()
        {
            var moves = 5;
            var playerName = "Test Player";
            var scoreboard = new Scoreboard();
            scoreboard.Add(moves, playerName);
            var topScore = scoreboard.GetTopScores()[0];

            Assert.IsInstanceOfType(topScore, typeof(Score));
        }
        public void ExpectScoreboardAddMethodNotToAddScoreToTopsScoresWhenIsNotInTopScores()
        {
            var scoreboard = new Scoreboard();
            var playerName = "Test Player";
            var maxCountTopScores = Constants.ScoreboardMaxCount;

            for (int moves = 1; moves <= maxCountTopScores; moves++)
            {
                scoreboard.Add(moves, playerName);
            }

            scoreboard.Add(maxCountTopScores + 1, playerName);

            var actualCountOfScoresOutOfTop = scoreboard.GetTopScores()
                .Where(s => s.Moves == maxCountTopScores + 1)
                .Count();

            var expectedCountOfScoresOutOfTop = 0;

            Assert.AreEqual(expectedCountOfScoresOutOfTop, actualCountOfScoresOutOfTop);
        }
        public void ExpectToAddToScoreBoardOneMove()
        {
            var reader = MockStorage.GetReader("move 3");
            var scoreboard = new Scoreboard();

            var engine = new Engine(
                MockStorage.GetSelfSolvingGameAfterOneMove(),
                scoreboard,
                MockStorage.GetPrinter(),
                reader,
                new CommandManager(),
                new BoardHistory());

            engine.Run();
            Assert.AreEqual(1, scoreboard.GetTopScores().First().Moves);
        }