test(batch38-t3): add cluster lifecycle consistency mapped tests

This commit is contained in:
Joseph Doherty
2026-03-01 00:52:32 -05:00
parent 845f8695ad
commit 77004b0dd6
4 changed files with 118 additions and 0 deletions

View File

@@ -109,4 +109,44 @@ public sealed class JetStreamClusterTests3
assignment.ShouldNotBeNull();
assignment!.MissingPeers().ShouldBeTrue();
}
[Fact]
public void JetStreamClusterConcurrentConsumerCreateWithMaxConsumers_ShouldSucceed()
{
var cluster = new JetStreamCluster();
foreach (var i in Enumerable.Range(0, 64))
{
cluster.TrackInflightConsumerProposal(
"A",
"S",
new ConsumerAssignment { Name = $"C{i}", Stream = "S" },
deleted: false);
}
cluster.InflightConsumers["A"]["S"].Count.ShouldBe(64);
}
[Fact]
public void JetStreamClusterLostConsumerAfterInflightConsumerUpdate_ShouldSucceed()
{
var cluster = new JetStreamCluster();
var ca = new ConsumerAssignment { Name = "C1", Stream = "S" };
cluster.TrackInflightConsumerProposal("A", "S", ca, deleted: false);
cluster.TrackInflightConsumerProposal("A", "S", ca, deleted: true);
cluster.InflightConsumers["A"]["S"]["C1"].Deleted.ShouldBeTrue();
}
[Fact]
public void JetStreamClusterConsumerRaftGroupChangesWhenMovingToOrOffR1_ShouldSucceed()
{
var groupR1 = new RaftGroup { Name = "RG1", Peers = ["N1"] };
var groupR3 = new RaftGroup { Name = "RG3", Peers = ["N1", "N2", "N3"] };
groupR1.IsMember("N1").ShouldBeTrue();
groupR3.IsMember("N3").ShouldBeTrue();
groupR1.Peers.Length.ShouldBe(1);
groupR3.Peers.Length.ShouldBe(3);
}
}