Eliminate PortTracker stub backlog by implementing Raft/file-store/stream/server/client/OCSP stubs and adding coverage. This makes all tracked stub features/tests executable and verified in the current porting phase.

This commit is contained in:
Joseph Doherty
2026-02-27 08:56:26 -05:00
parent ba4f41cf71
commit 8849265780
33 changed files with 2938 additions and 407 deletions

View File

@@ -0,0 +1,64 @@
// Copyright 2012-2026 The NATS Authors
// Licensed under the Apache License, Version 2.0
using Shouldly;
using ZB.MOM.NatsNet.Server.Auth.Ocsp;
namespace ZB.MOM.NatsNet.Server.Tests.Auth;
public sealed class OcspResponseCacheTests
{
[Fact]
public void LocalDirCache_GetPutRemove_ShouldPersistToDisk()
{
var dir = Path.Combine(Path.GetTempPath(), $"ocsp-{Guid.NewGuid():N}");
Directory.CreateDirectory(dir);
try
{
var cache = new LocalDirCache(dir);
cache.Get("abc").ShouldBeNull();
cache.Put("abc", [1, 2, 3]);
cache.Get("abc").ShouldBe([1, 2, 3]);
cache.Remove("abc");
cache.Get("abc").ShouldBeNull();
}
finally
{
Directory.Delete(dir, recursive: true);
}
}
[Fact]
public void NoOpCache_AndMonitor_ShouldNoOpSafely()
{
var noOp = new NoOpCache();
noOp.Put("k", [5]);
noOp.Get("k").ShouldBeNull();
noOp.Remove("k");
var dir = Path.Combine(Path.GetTempPath(), $"ocsp-monitor-{Guid.NewGuid():N}");
Directory.CreateDirectory(dir);
try
{
var stapleFile = Path.Combine(dir, "staple.bin");
File.WriteAllBytes(stapleFile, [9, 9]);
var monitor = new OcspMonitor
{
OcspStapleFile = stapleFile,
CheckInterval = TimeSpan.FromMilliseconds(10),
};
monitor.Start();
Thread.Sleep(30);
monitor.GetStaple().ShouldBe([9, 9]);
monitor.Stop();
}
finally
{
Directory.Delete(dir, recursive: true);
}
}
}