Files
natsnet/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/JetStream/NatsStreamTests.cs

44 lines
1.3 KiB
C#

// Copyright 2012-2026 The NATS Authors
// Licensed under the Apache License, Version 2.0
using Shouldly;
using ZB.MOM.NatsNet.Server;
namespace ZB.MOM.NatsNet.Server.Tests.JetStream;
public sealed class NatsStreamTests
{
[Fact]
public void Create_SetLeader_Purge_AndSeal_ShouldBehave()
{
var account = new Account { Name = "A" };
var streamCfg = new StreamConfig { Name = "ORDERS", Subjects = ["orders.*"], Storage = StorageType.FileStorage };
var memCfg = streamCfg.Clone();
memCfg.Storage = StorageType.MemoryStorage;
var store = new JetStreamMemStore(memCfg);
store.StoreMsg("orders.new", null, [1, 2], 0);
var stream = NatsStream.Create(account, streamCfg, null, store, null, null);
stream.ShouldNotBeNull();
stream!.IsLeader().ShouldBeFalse();
stream.SetLeader(true, 7);
stream.IsLeader().ShouldBeTrue();
stream.State().Msgs.ShouldBe(1UL);
stream.Purge();
stream.State().Msgs.ShouldBe(0UL);
stream.IsSealed().ShouldBeFalse();
stream.Seal();
stream.IsSealed().ShouldBeTrue();
stream.GetAccount().Name.ShouldBe("A");
stream.GetInfo().Config.Name.ShouldBe("ORDERS");
stream.Delete();
stream.IsLeader().ShouldBeFalse();
}
}