using Npgsql; namespace Azaion.Missions.E2E.Fixtures; /// /// Generic seed-applying fixture. Concrete child tasks (AZ-577 onward) supply /// a that exposes the inline SQL or named SQL /// file from _docs/02_document/tests/test-data.md ยง Seed Data Sets. /// public abstract class DbSeedFixture : IDisposable where TSeed : ISeedSpec, new() { public DbSeedFixture() { DbResetFixture.ResetDatabase(TestEnvironment.DbSideChannel); Apply(new TSeed()); } public void Dispose() { /* Cleanup handled by next fixture's reset. */ } private static void Apply(ISeedSpec seed) { using var conn = new NpgsqlConnection(TestEnvironment.DbSideChannel); conn.Open(); using var cmd = conn.CreateCommand(); cmd.CommandText = seed.Sql; cmd.ExecuteNonQuery(); } } public interface ISeedSpec { string Name { get; } string Sql { get; } }