节点在线、应用在线、配置在线使用令牌查询
大石头 authored at 2021-12-16 19:49:30
1.88 KiB
Stardust
using System;
using Stardust.Models;
using Xunit;

namespace ServerTest.Services;

/// <summary>应用重注册全局默认测试。验证“默认(跟随全局)”解析,以及枚举取值对历史数据的兼容</summary>
public class AppReRegisterGlobalTests
{
    [Fact(DisplayName = "重注册模式取值:0=默认,1=开放,2=可信接入,3=临时放行,4=关闭")]
    public void Values_AreCompatible()
    {
        Assert.Equal(0, (Int32)ReRegisterModes.Default);
        Assert.Equal(1, (Int32)ReRegisterModes.Open);
        Assert.Equal(2, (Int32)ReRegisterModes.Trusted);
        Assert.Equal(3, (Int32)ReRegisterModes.Temporary);
        Assert.Equal(4, (Int32)ReRegisterModes.Off);
    }

    [Fact(DisplayName = "跟随全局模式解析为全局默认")]
    public void Resolve_Default_FollowsGlobal()
    {
        Assert.Equal(ReRegisterModes.Open, ReRegisterModes.Default.Resolve(ReRegisterModes.Open));
        Assert.Equal(ReRegisterModes.Trusted, ReRegisterModes.Default.Resolve(ReRegisterModes.Trusted));
        Assert.Equal(ReRegisterModes.Off, ReRegisterModes.Default.Resolve(ReRegisterModes.Off));
    }

    [Fact(DisplayName = "显式模式优先于全局默认")]
    public void Resolve_Explicit_IgnoresGlobal()
    {
        Assert.Equal(ReRegisterModes.Off, ReRegisterModes.Off.Resolve(ReRegisterModes.Open));
        Assert.Equal(ReRegisterModes.Temporary, ReRegisterModes.Temporary.Resolve(ReRegisterModes.Off));
        Assert.Equal(ReRegisterModes.Trusted, ReRegisterModes.Trusted.Resolve(ReRegisterModes.Open));
        Assert.Equal(ReRegisterModes.Open, ReRegisterModes.Open.Resolve(ReRegisterModes.Off));
    }

    [Fact(DisplayName = "全局默认不可再为跟随全局,按关闭兜底")]
    public void Resolve_GlobalDefault_FallsBackToOff()
    {
        Assert.Equal(ReRegisterModes.Off, ReRegisterModes.Default.Resolve(ReRegisterModes.Default));
    }
}