public void CheckSpecialBuildingName_BuildingNameIsNullOrWhitespace_ShouldReturnInput(string buildingName) { // Arrange var helper = new SpecialBuildingNameHelper(); // Act var result = helper.CheckSpecialBuildingName(buildingName); // Assert Assert.Equal(buildingName, result); }
public void CheckSpecialBuildingName_BuildingNameIsSet_ShouldReturnCorrectValue(string buildingName, string expectedValue) { // Arrange var helper = new SpecialBuildingNameHelper(); // Act var result = helper.CheckSpecialBuildingName(buildingName); // Assert Assert.Equal(expectedValue, result); }
public static async Task Main(string[] args) { try { Regex.CacheSize = 100; OutputDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "..", "..", "..", "..", "..", "Presets"); ParseArguments(args); //Console.WriteLine($"{nameof(ForceDownload)}: {ForceDownload}"); if (!Directory.Exists(OutputDirectory)) { Directory.CreateDirectory(OutputDirectory); } logger.Info($"Directory for output: \"{Path.GetFullPath(OutputDirectory)}\""); logger.Info($"Version of preset file: {PresetVersion}"); Console.WriteLine($"Directory for output: \"{Path.GetFullPath(OutputDirectory)}\""); Console.WriteLine($"Version of preset file: {PresetVersion}"); Console.WriteLine(); WikiTextTableContainer tableContainer = null; if (!File.Exists("wiki_basic_info.json") || ForceDownload) { logger.Trace("start download of basic wiki building info"); var provider = new WikiTextProvider(); var providerResult = await provider.GetWikiTextAsync(); var tableParser = new WikiTextTableParser(); tableContainer = tableParser.GetTables(providerResult.WikiText); logger.Trace("save basic wiki building info"); SerializationHelper.SaveToFile(tableContainer, "wiki_basic_info.json", prettyPrint: true); } else { logger.Trace("load basic wiki building info"); tableContainer = SerializationHelper.LoadFromFile <WikiTextTableContainer>("wiki_basic_info.json"); } //get basic info of all buildings var wikiBuildingInfoProvider = new WikiBuildingInfoProvider(); var wikiBuildingInfoPreset = wikiBuildingInfoProvider.GetWikiBuildingInfos(tableContainer); //get detail info of all buildings var specialBuildingNameHelper = new SpecialBuildingNameHelper(); var regionHelper = new RegionHelper(); var titleParserSingle = new TitleParserSingle(_commons, specialBuildingNameHelper); var infoboxParser = new InfoboxParser.InfoboxParser(_commons, titleParserSingle, specialBuildingNameHelper, regionHelper); var infoboxExtractor = new InfoboxExtractor(_commons, titleParserSingle); var wikiDetailProvider = new WikiBuildingDetailProvider(_commons, infoboxParser, infoboxExtractor); wikiBuildingInfoPreset = wikiDetailProvider.FetchBuildingDetails(wikiBuildingInfoPreset); wikiBuildingInfoPreset.Version = PresetVersion; wikiBuildingInfoPreset.DateGenerated = DateTime.UtcNow; var outputPath = Path.Combine(OutputDirectory, CoreConstants.PresetsFiles.WikiBuildingInfoPresetsFile); logger.Trace($"save wiki building info: {outputPath}"); SerializationHelper.SaveToFile(wikiBuildingInfoPreset, outputPath, prettyPrint: UsePrettyPrint); //for testing //load parsed file to test //wikiBuildingInfoPreset = SerializationHelper.LoadFromFile<WikiBuildingInfoPreset>(PRESET_FILENAME); var oldColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Finished parsing all building information."); Console.ForegroundColor = oldColor; } catch (Exception ex) { logger.Error(ex, "error occured"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(ex); } finally { if (!NoWait) { Console.WriteLine(); Console.WriteLine("To exit press any key ..."); Console.ReadLine(); } } }