public void TestLocalisationFilesIntegrity() { List <string> files = FileProvider.GetFilesInDirectory(ApplicationPaths.LocalisationDirectory).ToList(); foreach (string file in files) { string fileName = PathExt.GetFileNameWithoutRootDirectory(file); List <string> lines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file).ToList(); int lineNumber = 0; foreach (string line in lines) { lineNumber += 1; if (string.IsNullOrWhiteSpace(line)) { continue; } string[] fields = line.Split(';'); Assert.IsFalse(string.IsNullOrWhiteSpace(fields[0]), $"Localisation code is undefined in {fileName} at line {lineNumber}"); Assert.IsFalse(string.IsNullOrWhiteSpace(fields[1]), $"English localisation is undefined in {fileName} at line {lineNumber}"); Assert.IsFalse(string.IsNullOrWhiteSpace(fields[2]), $"French localisation is undefined in {fileName} at line {lineNumber}"); Assert.IsFalse(string.IsNullOrWhiteSpace(fields[3]), $"German localisation is undefined in {fileName} at line {lineNumber}"); Assert.IsFalse(string.IsNullOrWhiteSpace(fields[5]), $"Spanish localisation is undefined in {fileName} at line {lineNumber}"); } } }
public void TestLandedTitleFilesIntegrity() { List <string> files = FileProvider.GetFilesInDirectory(ApplicationPaths.LandedTitlesDirectory).ToList(); foreach (string file in files) { string fileName = PathExt.GetFileNameWithoutRootDirectory(file); List <string> lines = FileProvider .ReadAllLines(FileEncoding.Windows1252, file) .ToList(); IEnumerable <LandedTitle> landedTitles = LandedTitlesFile .ReadAllTitles(file) .ToDomainModels(); string content = string.Join(Environment.NewLine, lines); int openingBrackets = content.Count(x => x == '{'); int closingBrackets = content.Count(x => x == '}'); Assert.AreEqual(openingBrackets, closingBrackets, $"There are mismatching brackets in {fileName}"); AssertLandedTitlesQuotes(lines, file); AssertLandedTitlesEqualSigns(lines, file); AssertLandedTitleDynamicNames(landedTitles, file); } }
public void TestCultureFilesIntegrity() { List <string> files = FileProvider.GetFilesInDirectory(ApplicationPaths.CulturesDirectory).ToList(); foreach (string file in files) { string fileName = PathExt.GetFileNameWithoutRootDirectory(file); List <string> lines = FileProvider .ReadAllLines(FileEncoding.Windows1252, file) .ToList(); IEnumerable <Culture> cultures = CultureFile .ReadAllCultures(file) .ToDomainModels(); string content = string.Join(Environment.NewLine, lines); int openingBrackets = content.Count(x => x == '{'); int closingBrackets = content.Count(x => x == '}'); Assert.AreEqual(openingBrackets, closingBrackets, $"There are mismatching brackets in {fileName}"); AssertCultureChanceValues(cultures, file); } }
public void TestLocalisationFilesFormatConventions() { List <string> localisationFiles = FileProvider.GetFilesInDirectory(ApplicationPaths.LocalisationDirectory).ToList(); foreach (string file in localisationFiles) { List <string> lines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file).ToList(); List <string> fullLines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file, true).ToList(); AssertIndentation(lines, file); AssertTrailingWhitespaces(fullLines, file); AssertRepeatedBlankLines(fullLines, file); } }
public void TestDynastyFilesFormatConventions() { List <string> dynastyFiles = FileProvider.GetFilesInDirectory(ApplicationPaths.DynastiesDirectory).ToList(); foreach (string file in dynastyFiles) { List <string> lines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file).ToList(); List <string> fullLines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file, true).ToList(); AssertIndentation(lines, file); AssertTrailingWhitespaces(fullLines, file); AssertRepeatedBlankLines(fullLines, file); AssertSpacingsAroundEquals(lines, file); } }
public void TestLocalisationFileNamingConventions() { if (!Directory.Exists(ApplicationPaths.LocalisationDirectory)) { return; } List <string> files = FileProvider.GetFilesInDirectory(ApplicationPaths.LocalisationDirectory).ToList(); foreach (string file in files) { string fileName = PathExt.GetFileNameWithoutRootDirectory(file); Assert.IsTrue(Regex.IsMatch(file, localisationFileNamePattern), $"The '{fileName}' file's name does not respect the conventions"); } }
public void TestLandedTitlesFilesFormatConventions() { List <string> landedTitlesFiles = FileProvider.GetFilesInDirectory(ApplicationPaths.LandedTitlesDirectory).ToList(); foreach (string file in landedTitlesFiles) { List <string> lines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file).ToList(); List <string> fullLines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file, true).ToList(); IEnumerable <LandedTitle> landedTitles = LandedTitlesFile .ReadAllTitles(file) .ToDomainModels(); AssertIndentation(lines, file); AssertTrailingWhitespaces(fullLines, file); AssertRepeatedBlankLines(fullLines, file); AssertSpacingsAroundEquals(lines, file); } }
public void AssertEncodings() { List <string> landedTitlesFiles = FileProvider.GetFilesInDirectory(ApplicationPaths.LandedTitlesDirectory).ToList(); foreach (string file in landedTitlesFiles) { string fileName = PathExt.GetFileNameWithoutRootDirectory(file); List <string> lines = FileProvider.ReadAllLines(FileEncoding.Windows1252, file).ToList(); int lineNumber = 0; foreach (string line in lines) { lineNumber += 1; int charNumber = 0; foreach (char c in line) { Assert.IsTrue(EncodingChecker.IsWindows1252(c), $"The '{file}' file contains a non-WINDOWS-1252 character at line {lineNumber}, position {charNumber}"); } } } }