using System; using AutoFixture; using MongoDB.Driver; using MongoDbGenericRepository.DataAccess.Create; using MongoDbGenericRepository.DataAccess.Delete; using MongoDbGenericRepository.DataAccess.Index; using MongoDbGenericRepository.DataAccess.Read; using Moq; namespace CoreUnitTests.Infrastructure; public class TestKeyedMongoRepositoryContext where TKey : IEquatable { private readonly Mock mongoDatabase; private TestKeyedMongoRepository sut; protected TestKeyedMongoRepositoryContext() { mongoDatabase = new Mock(); Fixture = new Fixture(); } protected Fixture Fixture { get; set; } protected TestKeyedMongoRepository Sut { get { if (sut != null) { return sut; } sut = new TestKeyedMongoRepository(mongoDatabase.Object); if (IndexHandler != null) { sut.SetIndexHandler(IndexHandler.Object); } if (Creator != null) { sut.SetDbCreator(Creator.Object); } if (Reader != null) { sut.SetReader(Reader.Object); } if (Eraser != null) { sut.SetEraser(Eraser.Object); } return sut; } } protected Mock IndexHandler { get; set; } protected Mock Creator { get; set; } protected Mock Reader { get; set; } protected Mock Eraser { get; set; } }