using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using MissionControl.Data; namespace MissionControl.Server.Tests; /// /// An in-memory SQLite database that speaks real EF Core, for fast endpoint tests /// without a SQL Server instance. /// public sealed class TestDatabase : IDisposable { private readonly SqliteConnection _connection = new("DataSource=:memory:"); public TestDatabase() { _connection.Open(); var options = new DbContextOptionsBuilder() .UseSqlite(_connection) .Options; Context = new MissionControlContext(options); Context.Database.EnsureCreated(); } public MissionControlContext Context { get; } public void Dispose() { Context.Dispose(); _connection.Dispose(); } }