using AxiOmron.PcbCheck.Options;
using AxiOmron.PcbCheck.Services.Implementations;
using Xunit;
namespace AxiOmron.PcbCheck.Tests;
///
/// 验证应用配置文件读写行为。
///
public sealed class AppConfigServiceTests
{
///
/// 配置文件使用字符串保存文件校验通道时,应能还原为枚举值。
///
[Fact]
public void Load_ShouldDeserializeFileCheckProvider_WhenProviderIsString()
{
var service = new AppConfigService();
string configPath = service.GetConfigPath();
string? originalJson = File.Exists(configPath) ? File.ReadAllText(configPath) : null;
try
{
File.WriteAllText(configPath, """
{
"FileCheck": {
"Provider": "Sftp"
}
}
""");
AppConfig config = service.Load();
Assert.Equal(FileCheckProvider.Sftp, config.FileCheck.Provider);
}
finally
{
if (originalJson is null)
{
File.Delete(configPath);
}
else
{
File.WriteAllText(configPath, originalJson);
}
}
}
}