using NATS.Server.JetStream.Models;
using NATS.Server.JetStream.Validation;

namespace NATS.Server.JetStream.Tests;

public class JetStreamStreamFeatureToggleParityTests
{
    [Fact]
    public void Stream_feature_toggles_are_preserved_in_config_model_and_validation()
    {
        var config = new StreamConfig
        {
            Name = "ORDERS",
            Subjects = ["orders.*"],
            Sealed = true,
            DenyDelete = true,
            DenyPurge = true,
            AllowDirect = true,
            MaxMsgSize = 1024,
            MaxMsgsPer = 10,
            MaxAgeMs = 5000,
        };

        JetStreamConfigValidator.Validate(config).IsValid.ShouldBeTrue();
        config.Sealed.ShouldBeTrue();
        config.DenyDelete.ShouldBeTrue();
        config.DenyPurge.ShouldBeTrue();
        config.AllowDirect.ShouldBeTrue();
    }
}
