Files
natsdotnet/tests/NATS.Server.Core.Tests/Server/CoreServerClientAccessorsParityBatch2Tests.cs
Joseph Doherty 7fbffffd05 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
2026-03-12 16:14:02 -04:00

96 lines
3.0 KiB
C#

using System.Net.Sockets;
using Microsoft.Extensions.Logging.Abstractions;
using NATS.Server.Auth;
using NATS.Server.Protocol;
namespace NATS.Server.Core.Tests.Server;
public class CoreServerClientAccessorsParityBatch2Tests
{
[Fact]
public void Client_protocol_constants_match_go_values()
{
ClientProtocolVersion.ClientProtoZero.ShouldBe(0);
ClientProtocolVersion.ClientProtoInfo.ShouldBe(1);
((int)ClientConnectionType.NonClient).ShouldBe(0);
((int)ClientConnectionType.Nats).ShouldBe(1);
((int)ClientConnectionType.Mqtt).ShouldBe(2);
((int)ClientConnectionType.WebSocket).ShouldBe(3);
}
[Fact]
public void NatsClient_getters_and_client_type_behave_as_expected()
{
using var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
using var stream = new MemoryStream();
var opts = new NatsOptions();
var info = new ServerInfo
{
ServerId = "srv1",
ServerName = "srv",
Version = "1.0.0",
Host = "127.0.0.1",
Port = 4222,
};
var auth = AuthService.Build(opts);
var nonce = new byte[] { 1, 2, 3 };
var stats = new ServerStats();
using var client = new NatsClient(
id: 42,
stream: stream,
socket: socket,
options: opts,
serverInfo: info,
authService: auth,
nonce: nonce,
logger: NullLogger.Instance,
serverStats: stats);
client.ClientType().ShouldBe(ClientConnectionType.Nats);
client.IsWebSocket = true;
client.ClientType().ShouldBe(ClientConnectionType.WebSocket);
client.IsWebSocket = false;
client.IsMqtt = true;
client.ClientType().ShouldBe(ClientConnectionType.Mqtt);
client.GetName().ShouldBe(string.Empty);
client.GetNonce().ShouldBe(nonce);
client.ToString().ShouldContain("cid=42");
}
[Fact]
public void NatsClient_client_type_non_client_when_kind_is_not_client()
{
using var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
using var stream = new MemoryStream();
var opts = new NatsOptions();
var info = new ServerInfo
{
ServerId = "srv1",
ServerName = "srv",
Version = "1.0.0",
Host = "127.0.0.1",
Port = 4222,
};
var auth = AuthService.Build(opts);
var stats = new ServerStats();
using var routeClient = new NatsClient(
id: 7,
stream: stream,
socket: socket,
options: opts,
serverInfo: info,
authService: auth,
nonce: null,
logger: NullLogger.Instance,
serverStats: stats,
kind: ClientKind.Router);
routeClient.ClientType().ShouldBe(ClientConnectionType.NonClient);
}
}