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

namespace ClientTest.Models;

public class ProcessPriorityTests
{
    [Fact]
    [Trait("Category", "Enums")]
    public void ValuesAreCorrect()
    {
        Assert.Equal(-2, (Int32)ProcessPriority.Idle);
        Assert.Equal(-1, (Int32)ProcessPriority.BelowNormal);
        Assert.Equal(0, (Int32)ProcessPriority.Normal);
        Assert.Equal(1, (Int32)ProcessPriority.AboveNormal);
        Assert.Equal(2, (Int32)ProcessPriority.High);
        Assert.Equal(3, (Int32)ProcessPriority.RealTime);
    }

    [Theory]
    [Trait("Category", "Enums")]
    [InlineData(ProcessPriority.Idle, "空闲")]
    [InlineData(ProcessPriority.BelowNormal, "较低")]
    [InlineData(ProcessPriority.Normal, "正常")]
    [InlineData(ProcessPriority.AboveNormal, "较高")]
    [InlineData(ProcessPriority.High, "高")]
    [InlineData(ProcessPriority.RealTime, "实时")]
    public void DescriptionAttributeIsCorrect(ProcessPriority priority, String expectedDescription)
    {
        var field = typeof(ProcessPriority).GetField(priority.ToString())!;
        var attr = field.GetCustomAttribute<DescriptionAttribute>();

        Assert.NotNull(attr);
        Assert.Equal(expectedDescription, attr.Description);
    }
}

public class DeployModesTests
{
    [Fact]
    [Trait("Category", "Enums")]
    public void ValuesAreCorrect()
    {
        Assert.Equal(1, (Int32)DeployModes.Partial);
        Assert.Equal(2, (Int32)DeployModes.Standard);
        Assert.Equal(3, (Int32)DeployModes.Full);
    }

    [Theory]
    [Trait("Category", "Enums")]
    [InlineData(DeployModes.Partial, "增量包")]
    [InlineData(DeployModes.Standard, "标准包")]
    [InlineData(DeployModes.Full, "完整包")]
    public void DescriptionAttributeIsCorrect(DeployModes mode, String expectedDescription)
    {
        var field = typeof(DeployModes).GetField(mode.ToString())!;
        var attr = field.GetCustomAttribute<DescriptionAttribute>();

        Assert.NotNull(attr);
        Assert.Equal(expectedDescription, attr.Description);
    }
}

public class DeployModeTests
{
    [Fact]
    [Trait("Category", "Enums")]
    public void ValuesAreCorrect()
    {
        Assert.Equal(0, (Int32)DeployMode.Default);
        Assert.Equal(10, (Int32)DeployMode.Standard);
        Assert.Equal(11, (Int32)DeployMode.Shadow);
        Assert.Equal(12, (Int32)DeployMode.Hosted);
        Assert.Equal(13, (Int32)DeployMode.Task);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void NewModesAreAboveTen()
    {
        Assert.True((Int32)DeployMode.Standard >= 10);
        Assert.True((Int32)DeployMode.Shadow >= 10);
        Assert.True((Int32)DeployMode.Hosted >= 10);
        Assert.True((Int32)DeployMode.Task >= 10);
    }
}

public class RuntimeIdentifierTests
{
    [Fact]
    [Trait("Category", "Enums")]
    public void WinValuesAreInTens()
    {
        Assert.Equal(10, (Int32)RuntimeIdentifier.Win);
        Assert.Equal(11, (Int32)RuntimeIdentifier.WinX86);
        Assert.Equal(12, (Int32)RuntimeIdentifier.WinX64);
        Assert.Equal(13, (Int32)RuntimeIdentifier.WinArm);
        Assert.Equal(14, (Int32)RuntimeIdentifier.WinArm64);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void LinuxValuesAreInTwenties()
    {
        Assert.Equal(20, (Int32)RuntimeIdentifier.Linux);
        Assert.Equal(22, (Int32)RuntimeIdentifier.LinuxX64);
        Assert.Equal(23, (Int32)RuntimeIdentifier.LinuxArm);
        Assert.Equal(24, (Int32)RuntimeIdentifier.LinuxArm64);
        Assert.Equal(26, (Int32)RuntimeIdentifier.LinuxMips64);
        Assert.Equal(27, (Int32)RuntimeIdentifier.LinuxLA64);
        Assert.Equal(28, (Int32)RuntimeIdentifier.LinuxRiscV64);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void LinuxMuslValuesAreInThirties()
    {
        Assert.Equal(30, (Int32)RuntimeIdentifier.LinuxMusl);
        Assert.Equal(32, (Int32)RuntimeIdentifier.LinuxMuslX64);
        Assert.Equal(33, (Int32)RuntimeIdentifier.LinuxMuslArm);
        Assert.Equal(34, (Int32)RuntimeIdentifier.LinuxMuslArm64);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void OsxValuesAreInForties()
    {
        Assert.Equal(40, (Int32)RuntimeIdentifier.Osx);
        Assert.Equal(42, (Int32)RuntimeIdentifier.OsxX64);
        Assert.Equal(44, (Int32)RuntimeIdentifier.OsxArm64);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void AnyValueIsZero()
    {
        Assert.Equal(0, (Int32)RuntimeIdentifier.Any);
    }
}

public class OSKindsTests
{
    [Fact]
    [Trait("Category", "Enums")]
    public void UnknownIsZero()
    {
        Assert.Equal(0, (Int32)OSKinds.Unknown);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void Win10AndWin11AreSmallValues()
    {
        Assert.Equal(10, (Int32)OSKinds.Win10);
        Assert.Equal(11, (Int32)OSKinds.Win11);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void LinuxBaseValueIs100()
    {
        Assert.Equal(100, (Int32)OSKinds.Linux);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void AlpineValueIs90()
    {
        Assert.Equal(90, (Int32)OSKinds.Alpine);
    }

    [Fact]
    [Trait("Category", "Enums")]
    public void SmartOSValueIs40()
    {
        Assert.Equal(40, (Int32)OSKinds.SmartOS);
    }
}