test(batch23): port and verify mapped route tests
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using Shouldly;
|
||||
using ZB.MOM.NatsNet.Server;
|
||||
using ZB.MOM.NatsNet.Server.Internal;
|
||||
@@ -7,6 +8,65 @@ namespace ZB.MOM.NatsNet.Server.Tests.ImplBacklog;
|
||||
|
||||
public sealed partial class RouteHandlerTests
|
||||
{
|
||||
[Fact] // T:2798
|
||||
public void ClusterAdvertiseErrorOnStartup_ShouldSucceed()
|
||||
{
|
||||
var options = new ServerOptions();
|
||||
options.Cluster.Advertise = "addr:::123";
|
||||
var (server, err) = NatsServer.NewServer(options);
|
||||
err.ShouldBeNull();
|
||||
var startErr = server!.StartRouting();
|
||||
startErr.ShouldNotBeNull();
|
||||
startErr!.Message.ShouldContain("Cluster.Advertise");
|
||||
}
|
||||
|
||||
[Fact] // T:2822
|
||||
public void TLSRoutesCertificateImplicitAllowPass_ShouldSucceed()
|
||||
{
|
||||
var client = new ClientConnection(ClientKind.Router, nc: new MemoryStream());
|
||||
client.MatchesPinnedCert(null).ShouldBeTrue();
|
||||
}
|
||||
|
||||
[Fact] // T:2823
|
||||
public void TLSRoutesCertificateImplicitAllowFail_ShouldSucceed()
|
||||
{
|
||||
var client = new ClientConnection(ClientKind.Router, nc: new MemoryStream());
|
||||
var pinned = new PinnedCertSet([new string('a', 64)]);
|
||||
client.MatchesPinnedCert(pinned).ShouldBeFalse();
|
||||
}
|
||||
|
||||
[Fact] // T:2844
|
||||
public void RouteParseOriginClusterMsgArgs_ShouldSucceed()
|
||||
{
|
||||
var c = new ClientConnection(ClientKind.Router)
|
||||
{
|
||||
Route = new Route { AccName = "MY_ACCOUNT"u8.ToArray() },
|
||||
};
|
||||
|
||||
var err = c.ProcessRoutedOriginClusterMsgArgs("ORIGIN foo + bar queue1 queue2 12 345\r\n"u8.ToArray());
|
||||
err.ShouldBeNull();
|
||||
Encoding.ASCII.GetString(c.ParseCtx.Pa.Account!).ShouldBe("ORIGIN");
|
||||
Encoding.ASCII.GetString(c.ParseCtx.Pa.Subject!).ShouldBe("foo");
|
||||
Encoding.ASCII.GetString(c.ParseCtx.Pa.Reply!).ShouldBe("bar");
|
||||
c.ParseCtx.Pa.Queues.ShouldNotBeNull();
|
||||
c.ParseCtx.Pa.Queues!.Count.ShouldBe(3);
|
||||
c.ParseCtx.Pa.Size.ShouldBe(345);
|
||||
}
|
||||
|
||||
[Fact] // T:2850
|
||||
public void RouteCompression_ShouldSucceed()
|
||||
{
|
||||
var opts = new ServerOptions();
|
||||
opts.Cluster.Compression.Mode = CompressionMode.S2Fast;
|
||||
var (server, err) = NatsServer.NewServer(opts);
|
||||
err.ShouldBeNull();
|
||||
server.ShouldNotBeNull();
|
||||
|
||||
var infoProto = server!.GenerateRouteInitialInfoJSON(string.Empty, CompressionMode.S2Fast, 0, GossipMode.Default);
|
||||
infoProto.Length.ShouldBeGreaterThan(0);
|
||||
Encoding.ASCII.GetString(infoProto).ShouldContain("\"compression\":\"s2_fast\"");
|
||||
}
|
||||
|
||||
[Fact] // T:2819
|
||||
public async Task RouteIPResolutionAndRouteToSelf_ShouldSucceed()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user