using NATS.Server; using NATS.Server.Protocol; namespace NATS.Server.Core.Tests.ProtocolParity; public class ProtocolDefaultConstantsGapParityTests { [Fact] public void NatsProtocol_exposes_core_default_constants() { NatsProtocol.DefaultHost.ShouldBe("0.0.0.0"); NatsProtocol.DefaultHttpPort.ShouldBe(8222); NatsProtocol.DefaultHttpBasePath.ShouldBe("/"); NatsProtocol.DefaultRoutePoolSize.ShouldBe(3); NatsProtocol.DefaultLeafNodePort.ShouldBe(7422); NatsProtocol.MaxPayloadMaxSize.ShouldBe(8 * 1024 * 1024); NatsProtocol.DefaultMaxConnections.ShouldBe(64 * 1024); NatsProtocol.DefaultPingMaxOut.ShouldBe(2); NatsProtocol.DefaultMaxClosedClients.ShouldBe(10_000); NatsProtocol.DefaultConnectErrorReports.ShouldBe(3600); NatsProtocol.DefaultReconnectErrorReports.ShouldBe(1); NatsProtocol.DefaultAllowResponseMaxMsgs.ShouldBe(1); NatsProtocol.DefaultServiceLatencySampling.ShouldBe(100); NatsProtocol.DefaultSystemAccount.ShouldBe("$SYS"); NatsProtocol.DefaultGlobalAccount.ShouldBe("$G"); NatsProtocol.ProtoSnippetSize.ShouldBe(32); NatsProtocol.MaxControlLineSnippetSize.ShouldBe(128); } [Fact] public void NatsProtocol_exposes_core_default_timespans() { NatsProtocol.TlsTimeout.ShouldBe(TimeSpan.FromSeconds(2)); NatsProtocol.DefaultTlsHandshakeFirstFallbackDelay.ShouldBe(TimeSpan.FromMilliseconds(50)); NatsProtocol.AuthTimeout.ShouldBe(TimeSpan.FromSeconds(2)); NatsProtocol.DefaultRouteConnect.ShouldBe(TimeSpan.FromSeconds(1)); NatsProtocol.DefaultRouteConnectMax.ShouldBe(TimeSpan.FromSeconds(30)); NatsProtocol.DefaultRouteReconnect.ShouldBe(TimeSpan.FromSeconds(1)); NatsProtocol.DefaultRouteDial.ShouldBe(TimeSpan.FromSeconds(1)); NatsProtocol.DefaultLeafNodeReconnect.ShouldBe(TimeSpan.FromSeconds(1)); NatsProtocol.DefaultLeafTlsTimeout.ShouldBe(TimeSpan.FromSeconds(2)); NatsProtocol.DefaultLeafNodeInfoWait.ShouldBe(TimeSpan.FromSeconds(1)); NatsProtocol.DefaultRttMeasurementInterval.ShouldBe(TimeSpan.FromHours(1)); NatsProtocol.DefaultAllowResponseExpiration.ShouldBe(TimeSpan.FromMinutes(2)); NatsProtocol.DefaultServiceExportResponseThreshold.ShouldBe(TimeSpan.FromMinutes(2)); NatsProtocol.DefaultAccountFetchTimeout.ShouldBe(TimeSpan.FromMilliseconds(1900)); NatsProtocol.DefaultPingInterval.ShouldBe(TimeSpan.FromMinutes(2)); NatsProtocol.DefaultFlushDeadline.ShouldBe(TimeSpan.FromSeconds(10)); NatsProtocol.AcceptMinSleep.ShouldBe(TimeSpan.FromMilliseconds(10)); NatsProtocol.AcceptMaxSleep.ShouldBe(TimeSpan.FromSeconds(1)); NatsProtocol.DefaultLameDuckDuration.ShouldBe(TimeSpan.FromMinutes(2)); NatsProtocol.DefaultLameDuckGracePeriod.ShouldBe(TimeSpan.FromSeconds(10)); } [Fact] public void NatsOptions_defaults_are_bound_to_protocol_defaults() { var options = new NatsOptions(); options.Host.ShouldBe(NatsProtocol.DefaultHost); options.Port.ShouldBe(NatsProtocol.DefaultPort); options.MaxConnections.ShouldBe(NatsProtocol.DefaultMaxConnections); options.AuthTimeout.ShouldBe(NatsProtocol.AuthTimeout); options.PingInterval.ShouldBe(NatsProtocol.DefaultPingInterval); options.MaxPingsOut.ShouldBe(NatsProtocol.DefaultPingMaxOut); options.WriteDeadline.ShouldBe(NatsProtocol.DefaultFlushDeadline); options.TlsTimeout.ShouldBe(NatsProtocol.TlsTimeout); options.TlsHandshakeFirstFallback.ShouldBe(NatsProtocol.DefaultTlsHandshakeFirstFallbackDelay); options.MaxClosedClients.ShouldBe(NatsProtocol.DefaultMaxClosedClients); options.LameDuckDuration.ShouldBe(NatsProtocol.DefaultLameDuckDuration); options.LameDuckGracePeriod.ShouldBe(NatsProtocol.DefaultLameDuckGracePeriod); options.ConnectErrorReports.ShouldBe(NatsProtocol.DefaultConnectErrorReports); options.ReconnectErrorReports.ShouldBe(NatsProtocol.DefaultReconnectErrorReports); } }