示例#1
0
        public async Task <bool> EvaluateScores(string inputFileLocation, string outputFileLocation)
        {
            var succeeded = true;

            var readerResult = await _scoreReader.ReadFile(inputFileLocation);

            if (readerResult.Count > 0)
            {
                var formattedMatches = new List <string>();

                foreach (var match in readerResult)
                {
                    var calculatedMatch = await _matchCalculator.Calculate(match);

                    var formattedMatch = await _setScoreFormatter.Format(calculatedMatch);

                    formattedMatches.Add(formattedMatch);
                }

                var writerSucceeded = await _scoreWriter.WriteFile(outputFileLocation, formattedMatches);

                if (!writerSucceeded)
                {
                    succeeded = false;
                }
            }
            else
            {
                succeeded = false;
            }

            return(succeeded);
        }
示例#2
0
        public async Task EvaluateScores_ExpectWriterCalled()
        {
            var outputPath = "outputPath";

            var games = new List <TennisGame>();

            new Fixture().AddManyTo(games, 10);

            _mockScoreReader.ReadFile(Arg.Any <string>()).Returns(games);
            _mockMatchCalculator.Calculate(Arg.Any <TennisGame>()).Returns(new Fixture().Create <TennisMatch>());
            _mockSetScoreFormatter.Format(Arg.Any <TennisMatch>()).Returns(new Fixture().Create <string>());
            _mockScoreWriter.WriteFile(Arg.Any <string>(), Arg.Any <List <string> >()).Returns(true);

            await _sut.EvaluateScores("input", outputPath);

            await _mockScoreWriter
            .Received(1)
            .WriteFile(outputPath, Arg.Is <List <string> >(l => l.Count == games.Count));
        }