using System.Collections.Generic; using AcDream.App; namespace AcDream.App.Tests; public class RuntimeOptionsRetailUiTests { [Fact] public void Parse_ReadsRetailUiAndAcDir() { var env = new Dictionary { ["ACDREAM_RETAIL_UI"] = "1", ["ACDREAM_AC_DIR"] = @"C:\Turbine\Asheron's Call", }; var opts = RuntimeOptions.Parse("dats", k => env.GetValueOrDefault(k)); Assert.True(opts.RetailUi); Assert.Equal(@"C:\Turbine\Asheron's Call", opts.AcDir); } [Fact] public void Parse_DefaultsRetailUiOffAndAcDirNull() { var opts = RuntimeOptions.Parse("dats", _ => null); Assert.False(opts.RetailUi); Assert.Null(opts.AcDir); } [Fact] public void Parse_ReadsRetailUiImporter_WhenSetToOne() { var env = new Dictionary { ["ACDREAM_RETAIL_UI_IMPORTER"] = "1", }; var opts = RuntimeOptions.Parse("dats", k => env.GetValueOrDefault(k)); Assert.True(opts.RetailUiImporter); } [Fact] public void Parse_DefaultsRetailUiImporterOff_WhenUnsetOrOtherValue() { // Unset → false. Assert.False(RuntimeOptions.Parse("dats", _ => null).RetailUiImporter); // Non-"1" values → false (mirrors RetailUi / other IsExactlyOne flags). var envOther = new Dictionary { ["ACDREAM_RETAIL_UI_IMPORTER"] = "true", }; Assert.False(RuntimeOptions.Parse("dats", k => envOther.GetValueOrDefault(k)).RetailUiImporter); } }