using FluentAssertions; using IBKRTrader.Core.Logging; using IBKRTrader.Hosting.Web; namespace IBKRTrader.Tests.Web; [Trait("cat", "unit")] public class LogStreamServiceTests { [Fact] public void GetRecent_CapturesLogEntries_AndCapsAtRingBufferSize() { var logger = new LoggingService(); using var sut = new LogStreamService(logger); for (int i = 0; i < 150; i++) { logger.Info("TestModule", $"Message {i}"); } var recent = sut.GetRecent(); recent.Count.Should().Be(100); } [Fact] public void Dispose_UnsubscribesFromLogger() { var logger = new LoggingService(); var sut = new LogStreamService(logger); logger.Info("TestModule", "Before dispose"); sut.GetRecent().Count.Should().Be(1); sut.Dispose(); logger.Info("TestModule", "After dispose"); sut.GetRecent().Count.Should().Be(1); } }