Files
BiliBiliToolPro/test/ConfigTest/UnitTest1.cs
database-mysql e519cac94e
Some checks failed
CodeQL / Analyze (csharp) (push) Has been cancelled
Close Stale Issues / close_stale_issues (push) Has been cancelled
repo-sync / repo-sync (push) Has been cancelled
auto-deploy-tencent-scf / pre-check (push) Has been cancelled
auto-deploy-tencent-scf / deploy serverless (push) Has been cancelled
pull file
2026-02-11 23:32:56 +08:00

176 lines
5.6 KiB
C#
Raw Permalink Blame History

using System;
using System.Diagnostics;
using System.Net;
using System.Net.Http;
using System.Text.Json;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using Ray.BiliBiliTool.Agent;
using Ray.BiliBiliTool.Config;
using Ray.BiliBiliTool.Config.Options;
using Ray.BiliBiliTool.Console;
using Ray.BiliBiliTool.Infrastructure;
using Xunit;
namespace ConfigTest
{
public class UnitTest1
{
[Fact]
public void WebProxyTest()
{
Program.CreateHost(new string[] { });
string proxyAddress = Global.ConfigurationRoot["Security:WebProxy"];
if (!proxyAddress.IsNullOrEmpty())
{
WebProxy webProxy = new WebProxy();
//user:password@host:port http proxy only .Tested with tinyproxy-1.11.0-rc1
if (proxyAddress.Contains("@"))
{
string userPass = proxyAddress.Split("@")[0];
string address = proxyAddress.Split("@")[1];
string proxyUser = userPass.Split(":")[0];
string proxyPass = userPass.Split(":")[1];
webProxy.Address = new Uri("http://" + address);
webProxy.Credentials = new NetworkCredential(proxyUser, proxyPass);
}
else
{
webProxy.Address = new Uri(proxyAddress);
}
HttpClient.DefaultProxy = webProxy;
HttpClient httpClient = new HttpClient();
var response = httpClient.GetAsync("http://api.ipify.org/");
var resultIp = response.Result.Content.ReadAsStringAsync().Result;
Debug.WriteLine(String.Format("<22><>ǰIP<49><50> {0}", resultIp));
}
}
[Fact]
public void Test1()
{
Program.CreateHost(new string[] { });
string s = Global.ConfigurationRoot["BiliBiliCookie:UserId"];
Debug.WriteLine(s);
string logLevel = Global.ConfigurationRoot[
"Serilog:WriteTo:0:Args:restrictedToMinimumLevel"
];
Debug.WriteLine(logLevel);
var cookie = Global.ServiceProviderRoot.GetRequiredService<BiliCookie>();
Debug.WriteLine(
JsonSerializer.Serialize(cookie, new JsonSerializerOptions { WriteIndented = true })
);
Assert.True(!string.IsNullOrWhiteSpace(cookie.UserId));
}
/// <summary>
/// <20><><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Key<65>ķָ<C4B7><D6B8><EFBFBD>
/// </summary>
[Fact]
public void TestEnvKeyDelimiter()
{
Environment.SetEnvironmentVariable("Ray_BiliBiliCookie__UserId", "123");
Program.CreateHost(null);
string result = Global.ConfigurationRoot["BiliBiliCookie:UserId"];
Assert.Equal("123", result);
}
[Fact]
public void LoadPrefixConfigByEnvWithNoError()
{
Environment.SetEnvironmentVariable("Ray_BiliBiliCookie", "UserId: 123");
Program.CreateHost(new string[] { });
string result = Global.ConfigurationRoot["BiliBiliCookie"];
Assert.Equal("UserId: 123", result);
Environment.SetEnvironmentVariable("Ray_BiliBiliCookie", null);
}
[Fact]
public void LoadPrefixConfigByEnvWhenValueIsNullWithNoError2()
{
Environment.SetEnvironmentVariable("Ray_BiliBiliCookie", null);
Program.CreateHost(new string[] { });
string result = Global.ConfigurationRoot["BiliBiliCookie"];
Assert.Null(result);
}
[Fact]
public void CoverConfigByEnvWithNoError()
{
Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Production");
Program.CreateHost(new string[] { });
string result = Global.ConfigurationRoot["IsPrd"];
Assert.Equal("True", result);
Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", null);
}
/// <summary>
/// Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>ֵ
/// </summary>
[Fact]
public void TestSetConfiguration()
{
Environment.SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development");
Program.CreateHost(new string[] { });
var options = Global.ServiceProviderRoot.GetRequiredService<
IOptionsMonitor<BiliBiliCookieOptions>
>();
Debug.WriteLine(options.CurrentValue.ToJsonStr());
//<2F>ֶ<EFBFBD><D6B6><EFBFBD>ֵ
//RayConfiguration.Root["BiliBiliCookie:UserId"] = "123456";
//options.CurrentValue.UserId = "123456";
Debug.WriteLine(
$"<22><>Configuration<6F><6E>ȡ<EFBFBD><C8A1>{Global.ConfigurationRoot["BiliBiliCookie:UserId"]}"
);
Debug.WriteLine($"<22><><EFBFBD><EFBFBD>options<6E><73>ȡ<EFBFBD><C8A1>{options.CurrentValue.ToJsonStr()}");
var optionsNew = Global.ServiceProviderRoot.GetRequiredService<
IOptionsMonitor<BiliBiliCookieOptions>
>();
Debug.WriteLine($"<22><><EFBFBD><EFBFBD>options<6E><73>ȡ<EFBFBD><C8A1>{optionsNew.CurrentValue.ToJsonStr()}");
}
/// <summary>
/// Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>ֵ
/// </summary>
[Fact]
public void TestHostDefaults()
{
Debug.WriteLine(Environment.GetEnvironmentVariable(HostDefaults.EnvironmentKey));
}
[Fact]
public void Test()
{
var s = "0123456";
var s1 = s[..2];
var s2 = s[4..];
}
}
}