消除单元测试编译警告
智能大石头 authored at 2025-09-01 09:12:02
1.02 KiB
X
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using NewLife.Caching;
using NewLife.Log;
using Xunit;

namespace XUnitTest.Caching;

public class MemoryQueueTests
{
    [Fact]
    public async Task Test1()
    {
        XTrace.WriteLine("MemoryQueueTests.Test1");

        var q = new MemoryQueue<String>();

        Assert.True(q.IsEmpty);
        Assert.Equal(0, q.Count);

        q.Add("test");
        q.Add("newlife", "stone");

        Assert.False(q.IsEmpty);
        Assert.Equal(3, q.Count);

        var s1 = q.TakeOne();
        Assert.Equal("test", s1);

        var ss = q.Take(3).ToArray();
        Assert.Equal(2, ss.Length);

        XTrace.WriteLine("begin TokeOneAsync");
        ThreadPool.QueueUserWorkItem(s =>
        {
            Thread.Sleep(1100);
            XTrace.WriteLine("add message");
            q.Add("delay");
        });

        var s2 = await q.TakeOneAsync(15, default);
        XTrace.WriteLine("end TokeOneAsync");
        Assert.Equal("delay", s2);
    }
}