RepositoryDbContextTest.cs 1.0 KB

123456789101112131415161718192021222324252627282930
  1. using Quadarax.Foundation.Core.Data.Domain;
  2. using Quadarax.Foundation.Core.Data.Interface.Repository;
  3. namespace qdr.fnd.core.test
  4. {
  5. public abstract class RepositoryDbContextTest<TRepository, TDbContext> : BaseTest where TDbContext : DataDomain, new()
  6. where TRepository : IRepository
  7. {
  8. // ReSharper disable once InconsistentNaming
  9. protected DomainContextResolver? _dbcResolver;
  10. protected UnitOfWork<TDbContext> Uow { get; private set; } = null!;
  11. protected override void OnSetup()
  12. {
  13. var context = new TDbContext();
  14. context.Database.EnsureCreated();
  15. _dbcResolver = new DomainContextResolver();
  16. _dbcResolver.Register(context);
  17. Uow = new UnitOfWork<TDbContext>(_dbcResolver);
  18. }
  19. protected override void OnTearDown()
  20. {
  21. _dbcResolver?.GetCurrent<TDbContext>().Dispose();
  22. _dbcResolver = null;
  23. }
  24. protected abstract TRepository GetRepository();
  25. }
  26. }