using FluentAssertions;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Primitives;
namespace OptionStudy.UnitApp
{
///
/// 5.1.7 配置内容同步
///
public class SyncConfigTest : IDisposable
{
private readonly ITestOutputHelper? testOutput;
public SyncConfigTest(ITestOutputHelperAccessor helperAccessor)
{
testOutput = helperAccessor.Output;
}
[Fact]
public void Sync_Test()
{
var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"Configs/appsettings.json");
var config = new ConfigurationBuilder()
.AddJsonFile(filePath, false, true)
.Build();
Action run = () => // 执行事件
{
var configJsonText = System.Text.Json.JsonSerializer.Serialize(config.Get());
testOutput?.WriteLine(configJsonText);
};
ChangeToken.OnChange
(
() => config.GetReloadToken(), // IChangeToken
run
);
File.AppendAllText(filePath," ");
//等待一会,监控到文件变化后会执行回调方法
Thread.Sleep(2*1000);
//todo:断言方法至少执行一次
}
public void Dispose()
{
}
}
}