public void ScoreClearTest()
        {
            // Arrange
            var b     = new Entities.Game();
            var plays = new[] { 10, 9, 1, 8, 2, 10, 7, 1, 10, 8, 2, 10, 10, 10, 8, 1 };

            // Act
            SequencialPlaysMake(b, plays);
            var assert1 = b.GetScore(Alley, Player);

            b.GetPainel(Alley).Clear();
            var assert2 = b.GetScore(Alley, Player);

            //Assert
            Assert.Equal(201, assert1);
            Assert.Equal(0, assert2);
        }
        public void PerfectPlaySimulateAndPlayLimitReachedExceptionTest(int[] plays, int score)
        {
            var b = new Entities.Game();

            try
            {
                SequencialPlaysMake(b, plays);
            }
            catch (Exception ex)
            {
                Assert.IsType <PlayLimitReachedException>(ex);
                Assert.NotEqual("", ex.Message);
            }
            finally
            {
                Assert.Equal(score, b.GetScore(Alley, Player));
            }
        }
        public void PainelScoreTest()
        {
            // Arrange
            var b         = new Entities.Game();
            var beginGame = DateTime.Now.AddMinutes(-10);

            b.AddPlay(new Play(Player, 10, Alley, beginGame));
            System.Threading.Thread.Sleep(500);

            // Act
            SequencialPlaysMake(b, new[] { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 });
            System.Threading.Thread.Sleep(500);
            var endGame = DateTime.Now.AddMinutes(10);

            b.AddPlay(new Play(Player, 10, Alley, endGame));
            var score = b.GetPainel(Alley);

            // Assert
            Assert.Equal(300, b.GetScore(Alley, Player));
            Assert.Equal(score.Alley, Alley);
            Assert.Equal(score.BeginGame, beginGame);
            Assert.Equal(score.LastGame, endGame);
            Assert.Single(b.Scores);
        }