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

namespace ServerTest.Nodes;

/// <summary>节点命令测试</summary>
public class NodeCommandTests
{
    [Fact]
    [DisplayName("过期未执行的节点命令会被取消,避免永久停留在就绪")]
    public void CancelExpired_CancelsStaleCommands()
    {
        var cmd = new NodeCommand
        {
            NodeID = 990001,
            Command = "test/expired",
            Expire = DateTime.Now.AddMinutes(-1),
            Status = CommandStatus.就绪,
        };
        cmd.Insert();

        try
        {
            var count = NodeCommand.CancelExpired(DateTime.Now);
            Assert.True(count >= 1);

            var found = NodeCommand.FindById(cmd.Id);
            Assert.NotNull(found);
            Assert.Equal(CommandStatus.取消, found.Status);
            Assert.Equal("命令已过期", found.Result);
        }
        finally
        {
            cmd.Delete();
        }
    }
}