32 lines
776 B
C#
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();
|
|
}
|
|
}
|