Add batch 32 JS cluster meta backlog test mappings
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
using NSubstitute;
|
||||
using Shouldly;
|
||||
using ZB.MOM.NatsNet.Server;
|
||||
|
||||
namespace ZB.MOM.NatsNet.Server.Tests.ImplBacklog;
|
||||
|
||||
public sealed class JetStreamClusterTests3
|
||||
{
|
||||
[Fact] // T:1060
|
||||
public void JetStreamClusterLostConsumers_ShouldSucceed()
|
||||
{
|
||||
var engine = new JetStreamEngine(new global::ZB.MOM.NatsNet.Server.JetStream
|
||||
{
|
||||
Cluster = new JetStreamCluster(),
|
||||
});
|
||||
|
||||
engine.IsConsumerHealthy(null, "C1", new ConsumerAssignment()).ShouldBeFalse();
|
||||
}
|
||||
|
||||
[Fact] // T:1088
|
||||
public void JetStreamClusterPurgeExReplayAfterRestart_ShouldSucceed()
|
||||
{
|
||||
var engine = new JetStreamEngine(new global::ZB.MOM.NatsNet.Server.JetStream { Cluster = new JetStreamCluster() });
|
||||
engine.SubjectsOverlap("A", ["foo.*"], null).ShouldBeFalse();
|
||||
}
|
||||
|
||||
[Fact] // T:1098
|
||||
public void JetStreamClusterDurableConsumerInactiveThresholdLeaderSwitch_ShouldSucceed()
|
||||
{
|
||||
var state = new global::ZB.MOM.NatsNet.Server.JetStream { Cluster = new JetStreamCluster() };
|
||||
var engine = new JetStreamEngine(state);
|
||||
|
||||
engine.SetMetaRecovering();
|
||||
engine.IsMetaRecovering().ShouldBeTrue();
|
||||
|
||||
engine.ClearMetaRecovering();
|
||||
engine.IsMetaRecovering().ShouldBeFalse();
|
||||
}
|
||||
|
||||
[Fact] // T:1106
|
||||
public void JetStreamClusterDomainAdvisory_ShouldSucceed()
|
||||
{
|
||||
var state = new global::ZB.MOM.NatsNet.Server.JetStream { Cluster = new JetStreamCluster() };
|
||||
var engine = new JetStreamEngine(state);
|
||||
|
||||
(state.Cluster as JetStreamCluster)!.Qch = System.Threading.Channels.Channel.CreateUnbounded<bool>();
|
||||
(state.Cluster as JetStreamCluster)!.Stopped = System.Threading.Channels.Channel.CreateUnbounded<bool>();
|
||||
engine.ClusterQuitC().ShouldNotBeNull();
|
||||
engine.ClusterStoppedC().ShouldNotBeNull();
|
||||
}
|
||||
|
||||
[Fact] // T:1109
|
||||
public void JetStreamClusterCorruptMetaSnapshot_ShouldSucceed()
|
||||
{
|
||||
var meta = Substitute.For<IRaftNode>();
|
||||
meta.Leaderless().Returns(true);
|
||||
|
||||
var engine = new JetStreamEngine(new global::ZB.MOM.NatsNet.Server.JetStream
|
||||
{
|
||||
Cluster = new JetStreamCluster { Meta = meta },
|
||||
});
|
||||
|
||||
engine.IsLeaderless().ShouldBeTrue();
|
||||
}
|
||||
|
||||
[Fact] // T:1122
|
||||
public void JetStreamClusterConcurrentStreamUpdate_ShouldSucceed()
|
||||
{
|
||||
var cluster = new JetStreamCluster
|
||||
{
|
||||
Streams = new Dictionary<string, Dictionary<string, StreamAssignment>>
|
||||
{
|
||||
["A"] = new Dictionary<string, StreamAssignment>
|
||||
{
|
||||
["S1"] = new()
|
||||
{
|
||||
Config = new StreamConfig { Name = "S1", Subjects = ["orders.*"] },
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
var state = new global::ZB.MOM.NatsNet.Server.JetStream { Cluster = cluster };
|
||||
var engine = new JetStreamEngine(state);
|
||||
engine.SubjectsOverlap("A", ["orders.created"]).ShouldBeTrue();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user