5dplomacy/MultiversalDiplomacyTests/ScriptTests.cs

37 lines
1.1 KiB
C#
Raw Normal View History

2024-08-18 04:24:59 +00:00
using NUnit.Framework;
using MultiversalDiplomacy.Model;
using MultiversalDiplomacy.Script;
namespace MultiversalDiplomacyTests;
public class ScriptTests
{
static IEnumerable<TestCaseData> 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)
{
2024-08-25 03:17:46 +00:00
Assert.Ignore("Script tests postponed until parsing tests are done");
string filename = Path.GetFileName(testScriptPath);
int line = 0;
2024-08-28 21:10:41 +00:00
IScriptHandler? handler = new SetupScriptHandler(
(msg) => {/* discard*/},
World.WithStandardMap(),
Adjudicator.MovementPhase,
2024-08-28 21:10:41 +00:00
strict: true);
2024-08-18 04:24:59 +00:00
foreach (string input in File.ReadAllLines(testScriptPath)) {
line++;
2024-08-18 04:24:59 +00:00
handler = handler?.HandleInput(input);
if (handler is null) Assert.Fail($"Script {filename} quit unexpectedly at line {line}: \"{input}\"");
2024-08-18 04:24:59 +00:00
}
}
}