Files
natsnet/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/ImplBacklog/JetStreamSuperClusterTests.Impltests.cs
2026-02-28 22:30:41 -05:00

49 lines
1.8 KiB
C#

using Shouldly;
using ZB.MOM.NatsNet.Server;
namespace ZB.MOM.NatsNet.Server.Tests.ImplBacklog;
public sealed class JetStreamSuperClusterTests
{
[Fact] // T:1453
public void JetStreamSuperClusterMoveCancel_ShouldSucceed()
{
var updates = new RecoveryUpdates();
var stream = new StreamAssignment { Client = new ClientInfo { Account = "ACC" }, Config = new StreamConfig { Name = "ORDERS" } };
updates.AddStream(stream);
updates.RemoveStream(stream);
updates.AddStreams.ShouldBeEmpty();
updates.RemoveStreams.ShouldContainKey("ACC:ORDERS");
}
[Fact] // T:1454
public void JetStreamSuperClusterDoubleStreamMove_ShouldSucceed()
{
var cluster = new JetStreamCluster();
var assignment = new StreamAssignment { Config = new StreamConfig { Name = "ORDERS" } };
cluster.TrackInflightStreamProposal("ACC", assignment, deleted: false);
cluster.TrackInflightStreamProposal("ACC", assignment, deleted: false);
cluster.InflightStreams["ACC"]["ORDERS"].Ops.ShouldBe(2UL);
}
[Fact] // T:1457
public void JetStreamSuperClusterSystemLimitsPlacement_ShouldSucceed()
{
var engine = new JetStreamEngine(new global::ZB.MOM.NatsNet.Server.JetStream());
engine.IsClustered().ShouldBeFalse();
engine.IsClusteredNoLock().ShouldBeFalse();
}
[Fact] // T:1465
public void JetStreamSuperClusterConsumerAckSubjectWithStreamImportProtocolError_ShouldSucceed()
{
var updates = new RecoveryUpdates();
var consumer = new ConsumerAssignment { Client = new ClientInfo { Account = "ACC" }, Stream = "ORDERS", Name = "ship" };
updates.AddOrUpdateConsumer(consumer);
updates.UpdateConsumers["ACC:ORDERS"].ShouldContainKey("ORDERS:ship");
}
}