refactor: rename remaining tests to NATS.Server.Core.Tests

- Rename tests/NATS.Server.Tests -> tests/NATS.Server.Core.Tests
- Update solution file, InternalsVisibleTo, and csproj references
- Remove JETSTREAM_INTEGRATION_MATRIX and NATS.NKeys from csproj (moved to JetStream.Tests and Auth.Tests)
- Update all namespaces from NATS.Server.Tests.* to NATS.Server.Core.Tests.*
- Replace private GetFreePort/ReadUntilAsync helpers with TestUtilities calls
- Fix stale namespace in Transport.Tests/NetworkingGoParityTests.cs
This commit is contained in:
Joseph Doherty
2026-03-12 16:14:02 -04:00
parent 78b4bc2486
commit 7fbffffd05
114 changed files with 576 additions and 1121 deletions

View File

@@ -0,0 +1,106 @@
using NATS.Server.Server;
namespace NATS.Server.Core.Tests.Server;
public class CoreServerOptionsParityBatch3Tests
{
[Fact]
public void Core_ports_and_compression_types_exist_with_expected_defaults()
{
var ports = new Ports
{
Nats = ["nats://127.0.0.1:4222"],
Monitoring = ["http://127.0.0.1:8222"],
};
ports.Nats.ShouldHaveSingleItem();
ports.Monitoring.ShouldHaveSingleItem();
CompressionModes.Off.ShouldBe("off");
CompressionModes.S2Auto.ShouldBe("s2_auto");
var opts = new CompressionOpts();
opts.Mode.ShouldBe(CompressionModes.Off);
opts.RTTThresholds.ShouldNotBeNull();
}
[Fact]
public void RoutesFromStr_parses_comma_delimited_routes()
{
var routes = NatsOptions.RoutesFromStr(" nats://a:6222, tls://b:7222 ");
routes.Count.ShouldBe(2);
routes[0].ToString().ShouldBe("nats://a:6222/");
routes[1].ToString().ShouldBe("tls://b:7222/");
}
[Fact]
public void Clone_returns_deep_copy_for_common_collections()
{
var original = new NatsOptions
{
Host = "127.0.0.1",
Port = 4222,
Tags = new Dictionary<string, string> { ["a"] = "1" },
SubjectMappings = new Dictionary<string, string> { ["foo.*"] = "bar.$1" },
TlsPinnedCerts = ["abc"],
};
original.InCmdLine.Add("host");
var clone = original.Clone();
clone.ShouldNotBeSameAs(original);
clone.Tags.ShouldNotBeSameAs(original.Tags);
clone.SubjectMappings.ShouldNotBeSameAs(original.SubjectMappings);
clone.TlsPinnedCerts.ShouldNotBeSameAs(original.TlsPinnedCerts);
clone.InCmdLine.ShouldNotBeSameAs(original.InCmdLine);
clone.InCmdLine.ShouldContain("host");
}
[Fact]
public void ProcessConfigString_sets_config_digest_and_applies_values()
{
var opts = new NatsOptions();
opts.ProcessConfigString("port: 4333");
opts.Port.ShouldBe(4333);
opts.ConfigDigest().ShouldNotBeNullOrWhiteSpace();
}
[Fact]
public void NoErrOnUnknownFields_toggle_is_available()
{
NatsOptions.NoErrOnUnknownFields(true);
var ex = Record.Exception(() => new NatsOptions().ProcessConfigString("totally_unknown_field: 1"));
ex.ShouldBeNull();
NatsOptions.NoErrOnUnknownFields(false);
}
[Fact]
public void Option_parity_types_exist()
{
var jsLimits = new JSLimitOpts
{
MaxRequestBatch = 10,
MaxAckPending = 20,
};
jsLimits.MaxRequestBatch.ShouldBe(10);
jsLimits.MaxAckPending.ShouldBe(20);
var callout = new AuthCallout
{
Issuer = "issuer",
Account = "A",
AllowedAccounts = ["A", "B"],
};
callout.Issuer.ShouldBe("issuer");
callout.AllowedAccounts.ShouldContain("B");
var proxies = new ProxiesConfig
{
Trusted = [new ProxyConfig { Key = "k1" }],
};
proxies.Trusted.Count.ShouldBe(1);
proxies.Trusted[0].Key.ShouldBe("k1");
}
}