예제 #1
0
        public void HtmlContainsData_LocalHtmlFile_AnyResults()
        {
            var filePath           = GetWebResponseLocalDataFilePath(2017, 'A');
            var webpageResponseStr = File.ReadAllText(filePath);
            var results            = RaceResultWebRepository.GetDataLinesFromWebResponse(webpageResponseStr);

            Assert.IsTrue(results.Any());
        }
예제 #2
0
        public void HtmlIsParsed_LocalHtmlFile_AnyResults()
        {
            var filePath           = GetWebResponseLocalDataFilePath(2017, 'A');
            var webpageResponseStr = File.ReadAllText(filePath);
            var dataLines          = RaceResultWebRepository.GetDataLinesFromWebResponse(webpageResponseStr);
            var parsedResults      = RaceResultWebRepository.ParseLines(2017, dataLines);

            Assert.IsTrue(dataLines.Any());
        }
예제 #3
0
 public void DownloadAllResultPages()
 {
     for (var year = 2017; year >= 2009; year--)
     {
         Console.WriteLine(year);
         Directory.CreateDirectory(Path.Combine(RawWebDataDirectory, year.ToString()));
         for (var letter = 'A'; letter <= 'Z'; letter++)
         {
             Console.WriteLine(letter);
             var webpageResponseStr = RaceResultWebRepository.DownloadWebpageStr(year, letter);
             var filePath           = Path.Combine(RawWebDataDirectory, year.ToString(), $"{letter}.html");
             File.WriteAllText(filePath, webpageResponseStr);
         }
     }
 }
예제 #4
0
        public void AllHtmlsAreParsed_LocalHtmlFiles_AnyResults()
        {
            var allWebResponsesByYear = GetAllWebResponsesByYear();
            var raceResults           = new List <RaceResult>();

            foreach (var pair in allWebResponsesByYear)
            {
                var year = pair.Key;
                foreach (var webpageResponseStr in pair.Value)
                {
                    var partialDataLines = RaceResultWebRepository.GetDataLinesFromWebResponse(webpageResponseStr);
                    var parsedResults    = RaceResultWebRepository.ParseLines(year, partialDataLines);
                    raceResults.AddRange(parsedResults);
                }
            }
            Assert.IsTrue(raceResults.Any());
        }
예제 #5
0
        public void ParseAllLocalResultsAndSaveToCsv()
        {
            var allWebResponsesByYear = GetAllWebResponsesByYear();
            var raceResults           = new List <RaceResult>();

            foreach (var pair in allWebResponsesByYear)
            {
                var year = pair.Key;
                foreach (var webpageResponseStr in pair.Value)
                {
                    var partialDataLines = RaceResultWebRepository.GetDataLinesFromWebResponse(webpageResponseStr);
                    var parsedResults    = RaceResultWebRepository.ParseLines(year, partialDataLines);
                    raceResults.AddRange(parsedResults);
                }
            }
            RaceResultCsvRepository.SaveAll(CsvDataFile, raceResults);
        }
예제 #6
0
        public void LineIsParse_LocalHtmlFile_AnyResults()
        {
            var raceResult = RaceResultWebRepository.ParseToRaceResultWithPartialRaceTimes(DataLine1, 2017);

            Assert.IsNotNull(raceResult);
        }
예제 #7
0
        public void WebIsDownloaded_WebUrl_AnyResults()
        {
            var webpageResponseStr = RaceResultWebRepository.DownloadWebpageStr(2017, 'A');

            Assert.IsNotNull(webpageResponseStr);
        }