U:调整Config模块功能调整Server模块集成效果

This commit is contained in:
jimmy committed 2025-11-17 11:28:01 +08:00
1 parent b14721d79e
commit 53d1dd2dbf
17 files changed
+123 -87

No files matched your search

+1
View File
@@ -10,6 +10,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0"/>
<PackageReference Include="MSTest" Version="3.6.4"/>
<PackageReference Include="MSTest.TestFramework" Version="3.6.4" />
</ItemGroup>
<ItemGroup>
+43 -2
View File
@@ -115,6 +115,44 @@ namespace Config.Test
Assert.AreEqual("fromToml", settings.RequiredField);
}
[TestMethod]
public void ConfigDefaults_Fluent_WithToml_AndOtherFormats_Works()
{
using var scope = new TempDirScope();
File.WriteAllText(scope.PathOf("appsettings.json"),
"{ \"Name\": \"default\", \"Port\": 20 }",
new UTF8Encoding(false));
File.WriteAllText(scope.PathOf("settings.ini"),
"[Database]\nHost=iniHost\nUser=iniUser\n",
new UTF8Encoding(false));
File.WriteAllText(scope.PathOf("extra.xml"),
"<settings><ValidPort>8080</ValidPort></settings>",
new UTF8Encoding(false));
File.WriteAllText(scope.PathOf("feature.toml"),
"RequiredField = \"fromToml\"\n",
new UTF8Encoding(false));
var settings = ConfigDefaults.Load<AppSettings>(defaults =>
{
defaults.BasePath = scope.Dir;
defaults.IncludeEnvironmentVariables = false;
defaults.WithIni("settings.ini")
.WithXml("extra.xml")
.WithToml("feature.toml");
});
Assert.AreEqual("default", settings.Name);
Assert.AreEqual(20, settings.Port);
Assert.AreEqual(8080, settings.ValidPort);
Assert.AreEqual("iniHost", settings.Database.Host);
Assert.AreEqual("iniUser", settings.Database.User);
Assert.AreEqual("fromToml", settings.RequiredField);
}
[TestMethod]
public void Validation_Fails_On_Missing_Required()
{
@@ -245,7 +283,10 @@ namespace Config.Test
_ = cm.LoadFromFile<AppSettings>(toml, ConfigFormat.Toml);
});
var cmToml = ConfigBuilder.BuildFromFiles(new[] { "a.toml" }, basePath: scope.Dir);
var cmToml = ConfigBuilder.BuildFromFiles(
new[] { "a.toml" },
basePath: scope.Dir,
includeEnvironment: false);
var tomlBack = cmToml.Get<AppSettings>();
Assert.AreEqual("save", tomlBack.Name);
Assert.AreEqual("db", tomlBack.Database.Host);
@@ -281,4 +322,4 @@ namespace Config.Test
Assert.AreEqual("hookName", s.Name, "Hook 未按预期覆盖前序配置源");
}
}
}
}