Files
natsnet/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/WaitQueueTests.cs

32 lines
776 B
C#

// Copyright 2012-2026 The NATS Authors
// Licensed under the Apache License, Version 2.0
using Shouldly;
using ZB.MOM.NatsNet.Server;
namespace ZB.MOM.NatsNet.Server.Tests.JetStream;
public sealed class WaitQueueTests
{
[Fact]
public void Add_Peek_Pop_IsFull_ShouldBehaveAsFifo()
{
var q = new WaitQueue();
q.Peek().ShouldBeNull();
q.Pop().ShouldBeNull();
q.Add(new WaitingRequest { Subject = "A", N = 1 });
q.Add(new WaitingRequest { Subject = "B", N = 2 });
q.Len.ShouldBe(2);
q.IsFull(2).ShouldBeTrue();
q.Peek()!.Subject.ShouldBe("A");
q.Pop()!.Subject.ShouldBe("A");
q.Pop()!.Subject.ShouldBe("B");
q.Len.ShouldBe(0);
q.IsFull(1).ShouldBeFalse();
}
}