引入redis服务,支持自动化单元测试
大石头 编写于 2022-03-31 22:56:30
X
using System;
using System.IO;
using NewLife;
using NewLife.Log;
using NewLife.Model;
using NewLife.Serialization;
using Xunit;

namespace XUnitTest.Common
{
    public class MachineInfoTests
    {
        [Fact(DisplayName = "基础测试")]
        public void BasicTest()
        {
            var mi = new MachineInfo();
            mi.Init();

            Assert.NotEmpty(mi.OSName);
            Assert.NotEmpty(mi.OSVersion);
            Assert.NotEmpty(mi.Product);
            Assert.NotEmpty(mi.Processor);
            Assert.NotEmpty(mi.CpuID);
            Assert.NotEmpty(mi.UUID);
            Assert.NotEmpty(mi.Guid);
            Assert.NotEmpty(mi.Guid);
            Assert.NotEmpty(mi.DiskID);

            Assert.True(mi.Memory > 1L * 1024 * 1024 * 1024);
            Assert.True(mi.AvailableMemory > 1L * 1024 * 1024);
            //Assert.True(mi.CpuRate > 0.001);
            Assert.Equal(0UL, mi.UplinkSpeed);
            Assert.Equal(0UL, mi.DownlinkSpeed);
        }

        [Fact]
        public void RegisterTest()
        {
            //MachineInfo.Current = null;
            var task = MachineInfo.RegisterAsync();
            var mi = task.Result;
            Assert.Equal(mi, MachineInfo.Current);

            var mi2 = ObjectContainer.Current.Resolve<MachineInfo>();
            Assert.Equal(mi, mi2);

            var file = Path.GetTempPath().CombinePath("machine_info.json").GetFullPath();
            Assert.True(File.Exists(file));

            var mi3 = File.ReadAllText(file).ToJsonEntity<MachineInfo>();
            Assert.Equal(mi.OSName, mi3.OSName);
            Assert.Equal(mi.UUID, mi3.UUID);
            Assert.Equal(mi.Guid, mi3.Guid);
        }
    }
}