using NUnit.Framework; using MultiversalDiplomacy.Model; using MultiversalDiplomacy.Script; namespace MultiversalDiplomacyTests; public class ScriptTests { static IEnumerable DatcTestCases() { foreach (var path in Directory.EnumerateFiles("Scripts/DATC")) { yield return new TestCaseData(path) .SetName($"{{m}}({Path.GetFileNameWithoutExtension(path)})"); } } [TestCaseSource(nameof(DatcTestCases))] public void Test_DATC(string testScriptPath) { Assert.Ignore("Script tests postponed until parsing tests are done"); string filename = Path.GetFileName(testScriptPath); int line = 0; IScriptHandler? handler = new SetupScriptHandler(World.WithStandardMap(), strict: true); foreach (string input in File.ReadAllLines(testScriptPath)) { line++; handler = handler?.HandleInput(input); if (handler is null) Assert.Fail($"Script {filename} quit unexpectedly at line {line}: \"{input}\""); } } }