节点在线、应用在线、配置在线使用令牌查询
大石头 authored at 2021-12-16 19:49:30
888.00 B
Stardust
extern alias web;
using System;
using System.ComponentModel;
using System.Reflection;
using Stardust.Data;
using Xunit;

namespace ServerTest.Web;

/// <summary>应用在线控制器测试</summary>
public class AppOnlineControllerTests
{
    [Fact]
    [DisplayName("应用在线状态按心跳时间判定,历史离线会话不参与批量命令")]
    public void IsOnline_UsesHeartbeatTimeout()
    {
        var method = typeof(web::Stardust.Web.Areas.Registry.Controllers.AppOnlineController)
            .GetMethod("IsOnline", BindingFlags.NonPublic | BindingFlags.Static);
        Assert.NotNull(method);

        Assert.Equal(false, method.Invoke(null, [null]));
        Assert.Equal(true, method.Invoke(null, [new AppOnline { UpdateTime = DateTime.Now }]));
        Assert.Equal(false, method.Invoke(null, [new AppOnline { UpdateTime = DateTime.Now.AddHours(-1) }]));
    }
}