using Elwig.Helpers; using Microsoft.Data.Sqlite; using System.Reflection; namespace Tests { [SetUpFixture] public class DatabaseSetup { private SqliteConnection? Connection; [OneTimeSetUp] public async Task SetupDatabase() { AppDbContext.ConnectionStringOverride = $"Data Source=ElwigTestDB; Mode=Memory; Foreign Keys=True; Cache=Shared"; Connection = await AppDbContext.ConnectAsync(); await AppDbContext.ExecuteEmbeddedScript(Connection, Assembly.GetExecutingAssembly(), "Tests.Resources.Create.sql"); await AppDbContext.ExecuteEmbeddedScript(Connection, Assembly.GetExecutingAssembly(), "Tests.Resources.Insert.sql"); } [OneTimeTearDown] public async Task TeardownDatabase() { AppDbContext.ConnectionStringOverride = null; if (Connection == null) return; await Connection.DisposeAsync(); Connection = null; // The in-memory database will be dropped if all connections to it are closed } } }