task6(batch39): implement shutdown and signal flow paths
This commit is contained in:
@@ -6,6 +6,52 @@ namespace ZB.MOM.NatsNet.Server.Tests.ImplBacklog;
|
||||
|
||||
public sealed partial class ConcurrencyTests1
|
||||
{
|
||||
[Fact] // T:2389
|
||||
public void NoRaceJetStreamWorkQueueLoadBalance_ShouldSucceed()
|
||||
{
|
||||
var stream = NatsStream.Create(
|
||||
new Account { Name = "A" },
|
||||
new StreamConfig { Name = "S", Subjects = ["jobs.>"] },
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null);
|
||||
stream.ShouldNotBeNull();
|
||||
|
||||
var consumer = NatsConsumer.Create(stream!, new ConsumerConfig { Durable = "D", MaxWaiting = 4 }, ConsumerAction.CreateOrUpdate, null);
|
||||
consumer.ShouldNotBeNull();
|
||||
|
||||
consumer!.ProcessNextMsgRequest("_INBOX.wq", "{\"batch\":2}"u8.ToArray()).ShouldBeTrue();
|
||||
consumer.PendingRequests().ShouldContainKey("_INBOX.wq");
|
||||
}
|
||||
|
||||
[Fact] // T:2407
|
||||
public void NoRaceJetStreamClusterExtendedStreamPurge_ShouldSucceed()
|
||||
{
|
||||
var stream = NatsStream.Create(
|
||||
new Account { Name = "A" },
|
||||
new StreamConfig { Name = "S", Subjects = ["jobs.>"] },
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null);
|
||||
stream.ShouldNotBeNull();
|
||||
|
||||
var consumer = NatsConsumer.Create(stream!, new ConsumerConfig { Durable = "D" }, ConsumerAction.CreateOrUpdate, null);
|
||||
consumer.ShouldNotBeNull();
|
||||
|
||||
consumer!.ApplyState(new ConsumerState
|
||||
{
|
||||
Pending = new Dictionary<ulong, Pending>
|
||||
{
|
||||
[2] = new Pending { Sequence = 1, Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() },
|
||||
},
|
||||
});
|
||||
|
||||
consumer.Purge();
|
||||
consumer.GetConsumerState().Pending.ShouldBeNull();
|
||||
}
|
||||
|
||||
[Fact] // T:2373
|
||||
public void NoRaceClosedSlowConsumerWriteDeadline_ShouldSucceed()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user