using FluentAssertions; using IBKRTrader.Modules.CongressTrading; using IBKRTrader.Modules.CongressTrading.Database; using IBKRTrader.Modules.CongressTrading.Scraper; using IBKRTrader.Modules.CongressTrading.Workers; using Microsoft.Extensions.DependencyInjection; namespace IBKRTrader.Tests.Modules; [Trait("cat", "unit")] public class CongressTradingModuleTests { [Fact] public void Metadata_IsAsExpected() { var module = new CongressTradingModule(); module.Key.Should().Be("CT"); module.DisplayName.Should().NotBeNullOrWhiteSpace(); module.Version.Should().Be("1.0.0"); } [Fact] public void RegisterServices_RegistersAllModuleServices() { var services = new ServiceCollection(); new CongressTradingModule().RegisterServices(services); var registered = services.Select(d => d.ServiceType).ToList(); registered.Should().Contain(new[] { typeof(CongressMigrations), typeof(CongressRepository), typeof(CapitolTradesScraper), typeof(CongressHistoryImportWorker), typeof(CongressScrapeWorker), }); } [Fact] public void CreateWindow_ReturnsForm() { using var form = new CongressTradingModule().CreateWindow(new ServiceCollection().BuildServiceProvider()); form.Should().NotBeNull(); form.Text.Should().Contain("CT"); } }