using System; using AutoFixture; using AutoFixture.AutoMoq; using MongoDB.Driver; using MongoDbGenericRepository.DataAccess.Read; using Moq; namespace CoreUnitTests.Infrastructure; public class TestReadOnlyMongoRepositoryContext { private readonly Mock mongoDatabase; private TestReadOnlyMongoRepository sut; protected TestReadOnlyMongoRepositoryContext() { mongoDatabase = new Mock(); Fixture = new Fixture().Customize(new AutoMoqCustomization()); } protected IFixture Fixture { get; set; } protected TestReadOnlyMongoRepository Sut { get { if (sut != null) { return sut; } sut = Fixture.Create(); if (Reader != null) { sut.SetReader(Reader.Object); } return sut; } } protected Mock Reader { get; set; } protected Mock MockOf() where T : class => Fixture.Freeze>(); }