using Quadarax.Foundation.Core.Data.Domain; using Quadarax.Foundation.Core.Data.Interface.Repository; namespace qdr.fnd.core.test { public abstract class RepositoryDbContextTest : BaseTest where TDbContext : DataDomain, new() where TRepository : IRepository { // ReSharper disable once InconsistentNaming protected DomainContextResolver? _dbcResolver; protected UnitOfWork Uow { get; private set; } = null!; protected override void OnSetup() { var context = new TDbContext(); context.Database.EnsureCreated(); _dbcResolver = new DomainContextResolver(); _dbcResolver.Register(context); Uow = new UnitOfWork(_dbcResolver); } protected override void OnTearDown() { _dbcResolver?.GetCurrent().Dispose(); _dbcResolver = null; } protected abstract TRepository GetRepository(); } }