public void Should_ThrowIfTooFewFramesRecorded(string score)
        {
            //arrange
            InstantiateUnderTest();
            var playerScore = new BowlingLineScore("test", score);

            //pass 12 frame scores
            _scoreParser.Setup(p => p.ParseScores(It.IsAny<string>()))
                .Returns(TestHelper.GetNumberOfParsedScores(12));

            _bowlingFrameBuilder
                .Setup(b => b.BuildScores(It.IsAny<IEnumerable<Tuple<int, int>>>()))
                .Returns(TestHelper.GetNumberOfFrames(9));

            var bowlingLine = new BowlingLine(new List<BowlingLineScore> { playerScore });

            //act
            _underTest.CalculateScores(bowlingLine);
        }
        public void Should_ParseScores()
        {
            //arrange
            InstantiateUnderTest();
            var playerScore = new BowlingLineScore("test", TestHelper.AllStrikes);

            _scoreParser.Setup(p => p.ParseScores(It.IsAny<string>()))
               .Returns(TestHelper.GetNumberOfParsedScores(10));


            _bowlingFrameBuilder
                .Setup(b => b.BuildScores(It.IsAny<IEnumerable<Tuple<int, int>>>()))
                .Returns(TestHelper.GetRandomFrameScores);
            
            var bowlingLine = new BowlingLine(new List<BowlingLineScore>{playerScore});

            //act
            _underTest.CalculateScores(bowlingLine);

            //assert
            _scoreParser
                .Verify(p => p.ParseScores(It.IsAny<string>()), Times.Once);
        }
        public void ShouldCallScoreCalculator()
        {
            //arrange
            InstantiateUnderTest();
            var playerScore = new BowlingLineScore("test", TestHelper.AllStrikes);

            var scores =TestHelper.GetParsedScoresForAllStrikes();

            _scoreParser.Setup(p => p.ParseScores(It.IsAny<string>()))
               .Returns(scores);

            _bowlingFrameBuilder.Setup(fb => fb.BuildScores(It.IsAny<IEnumerable<Tuple<int, int>>>()))
                .Returns(TestHelper.GetAllFramesAsStrikes());
            

            var bowlingLine = new BowlingLine(new List<BowlingLineScore> { playerScore });

            //act
            _underTest.CalculateScores(bowlingLine);

            //assert
            _scoreCalculator
                .Verify(calc=>calc.CalculateTotalScore(It.IsAny<List<IFrame>>()),Times.Once);

        }