49 lines
1.8 KiB
C#
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");
|
|
}
|
|
}
|