已完成管理后台第二批 ASP.NET Core 10 迁移:
学校创建、修改 班级创建、修改 管理员创建、修改 管理员密码重置 自主注册开关 写入与审计日志保持同一事务 停用或重置管理员后自动清除其会话
This commit is contained in:
@@ -7,7 +7,7 @@ public sealed class AdminMigrationOptionsTests
|
||||
[Fact]
|
||||
public void DisabledByDefault()
|
||||
{
|
||||
WithEnvironment(null, null, () =>
|
||||
WithEnvironment(null, null, null, () =>
|
||||
{
|
||||
var options = AdminMigrationOptions.FromEnvironment(
|
||||
configuredNativeReadsEnabled: false,
|
||||
@@ -21,7 +21,7 @@ public sealed class AdminMigrationOptionsTests
|
||||
[Fact]
|
||||
public void RequiresNativeAuthentication()
|
||||
{
|
||||
WithEnvironment("true", "true", () =>
|
||||
WithEnvironment("true", null, "true", () =>
|
||||
{
|
||||
var exception = Assert.Throws<InvalidOperationException>(() =>
|
||||
AdminMigrationOptions.FromEnvironment(
|
||||
@@ -36,7 +36,7 @@ public sealed class AdminMigrationOptionsTests
|
||||
[Fact]
|
||||
public void RequiresSharedSessionsOutsideIsolatedTests()
|
||||
{
|
||||
WithEnvironment("true", null, () =>
|
||||
WithEnvironment("true", null, null, () =>
|
||||
{
|
||||
var exception = Assert.Throws<InvalidOperationException>(() =>
|
||||
AdminMigrationOptions.FromEnvironment(
|
||||
@@ -51,7 +51,7 @@ public sealed class AdminMigrationOptionsTests
|
||||
[Fact]
|
||||
public void AllowsSharedRedisSessions()
|
||||
{
|
||||
WithEnvironment("true", null, () =>
|
||||
WithEnvironment("true", null, null, () =>
|
||||
{
|
||||
var options = AdminMigrationOptions.FromEnvironment(
|
||||
configuredNativeReadsEnabled: false,
|
||||
@@ -62,22 +62,56 @@ public sealed class AdminMigrationOptionsTests
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OrganizationWritesRequireNativeReads()
|
||||
{
|
||||
WithEnvironment("false", "true", null, () =>
|
||||
{
|
||||
var exception = Assert.Throws<InvalidOperationException>(() =>
|
||||
AdminMigrationOptions.FromEnvironment(
|
||||
configuredNativeReadsEnabled: false,
|
||||
authenticationNativeEnabled: true,
|
||||
sharesLegacySessions: true));
|
||||
|
||||
Assert.Contains("ADMIN_NATIVE_READS_ENABLED=true", exception.Message);
|
||||
});
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnablesOrganizationWritesWithReadsAndSharedSessions()
|
||||
{
|
||||
WithEnvironment("true", "true", null, () =>
|
||||
{
|
||||
var options = AdminMigrationOptions.FromEnvironment(
|
||||
configuredNativeReadsEnabled: false,
|
||||
authenticationNativeEnabled: true,
|
||||
sharesLegacySessions: true);
|
||||
|
||||
Assert.True(options.NativeReadsEnabled);
|
||||
Assert.True(options.NativeOrganizationWritesEnabled);
|
||||
});
|
||||
}
|
||||
|
||||
private static void WithEnvironment(
|
||||
string? nativeReadsEnabled,
|
||||
string? nativeOrganizationWritesEnabled,
|
||||
string? allowMemory,
|
||||
Action test)
|
||||
{
|
||||
var previousNativeReadsEnabled = Environment.GetEnvironmentVariable("ADMIN_NATIVE_READS_ENABLED");
|
||||
var previousNativeOrganizationWritesEnabled = Environment.GetEnvironmentVariable("ADMIN_NATIVE_ORGANIZATION_WRITES_ENABLED");
|
||||
var previousAllowMemory = Environment.GetEnvironmentVariable("ADMIN_NATIVE_ALLOW_MEMORY");
|
||||
try
|
||||
{
|
||||
Environment.SetEnvironmentVariable("ADMIN_NATIVE_READS_ENABLED", nativeReadsEnabled);
|
||||
Environment.SetEnvironmentVariable("ADMIN_NATIVE_ORGANIZATION_WRITES_ENABLED", nativeOrganizationWritesEnabled);
|
||||
Environment.SetEnvironmentVariable("ADMIN_NATIVE_ALLOW_MEMORY", allowMemory);
|
||||
test();
|
||||
}
|
||||
finally
|
||||
{
|
||||
Environment.SetEnvironmentVariable("ADMIN_NATIVE_READS_ENABLED", previousNativeReadsEnabled);
|
||||
Environment.SetEnvironmentVariable("ADMIN_NATIVE_ORGANIZATION_WRITES_ENABLED", previousNativeOrganizationWritesEnabled);
|
||||
Environment.SetEnvironmentVariable("ADMIN_NATIVE_ALLOW_MEMORY", previousAllowMemory);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user