You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HttpClientStudy.Config;
using Microsoft.Extensions.Options;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace HttpClientStudy.UnitTest.ConfigTest
{
public class WebApiConfigTest
{
[Fact]
public void WebApiOption_Test()
{
ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
configurationBuilder.AddWebApiConfiguration();
IConfiguration configuration = configurationBuilder.Build();
var services = new ServiceCollection();
services.AddSingleton(configuration);
services.AddWebApiOptions();
var provider = services.BuildServiceProvider();
IOptions<WebApiConfig>? webApiOptions = provider.GetService<IOptions<WebApiConfig>>();
var webApiConfig = webApiOptions?.Value;
Assert.NotNull(webApiOptions);
Assert.NotNull(webApiConfig);
Assert.NotEmpty(webApiConfig.BaseUrl);
Assert.NotEmpty(webApiConfig.WebAppMutexName);
}
[Fact]
public void WebApiOption_Test2()
{
IOptionsMonitor<WebApiConfig> webApiMonitor = WebApiConfigManager.GetWebApiConfigOption();
Assert.NotNull(webApiMonitor);
var webApiConfig = webApiMonitor.CurrentValue;
Assert.NotNull(webApiConfig);
Assert.NotEmpty(webApiConfig.WebAppMutexName);
}
}
}