using System.Collections.Generic; using System.Threading; using CoreUnitTests.Infrastructure; using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Driver; using MongoDbGenericRepository.DataAccess.Index; using Moq; namespace CoreUnitTests.DataAccessTests.MongoDbIndexHandlerTests; public class BaseIndexTests : GenericTestContext { protected (Mock>, Mock>) SetupIndexes( List indexes, Mock> collection) { var asyncCursor = MockOf>(); var moveNextSequence = asyncCursor .SetupSequence(x => x.MoveNextAsync(It.IsAny())); var currentSequence = asyncCursor .SetupSequence(x => x.Current); foreach (var bsonDocument in indexes) { moveNextSequence.ReturnsAsync(true); currentSequence.Returns(new[] {bsonDocument}); } moveNextSequence.ReturnsAsync(false); var indexManager = MockOf>(); indexManager .Setup(x => x.ListAsync(It.IsAny())) .ReturnsAsync(asyncCursor.Object); collection .SetupGet(x => x.Indexes) .Returns(indexManager.Object); return (asyncCursor, indexManager); } }