using System.Linq; using StellaOps.Cli.Services; using Xunit; namespace StellaOps.Cli.Tests.Commands; public class MigrationModuleRegistryTests { [Fact] public void Modules_Populated_With_All_Postgres_Modules() { var modules = MigrationModuleRegistry.Modules; Assert.Equal(5, modules.Count); Assert.Contains(modules, m => m.Name == "Authority" && m.SchemaName == "authority"); Assert.Contains(modules, m => m.Name == "Scheduler" && m.SchemaName == "scheduler"); Assert.Contains(modules, m => m.Name == "Policy" && m.SchemaName == "policy"); Assert.Contains(modules, m => m.Name == "Notify" && m.SchemaName == "notify"); Assert.Contains(modules, m => m.Name == "Excititor" && m.SchemaName == "vex"); Assert.Equal(5, MigrationModuleRegistry.ModuleNames.Count()); } [Fact] public void FindModule_Finds_By_Name_CaseInsensitive() { var result = MigrationModuleRegistry.FindModule("authority"); Assert.NotNull(result); Assert.Equal("authority", result!.SchemaName); } [Fact] public void GetModules_Filtered_Returns_Single() { var result = MigrationModuleRegistry.GetModules("Authority"); var module = Assert.Single(result); Assert.Equal("authority", module.SchemaName); } [Fact] public void GetModules_All_Returns_All() { var result = MigrationModuleRegistry.GetModules(null); Assert.Equal(6, result.Count()); } }