tests for readonly repositories

This commit is contained in:
Sean Garrett
2023-07-04 22:38:01 +01:00
parent b09b359867
commit dc7a4dc67b
56 changed files with 10877 additions and 1212 deletions
@@ -25,6 +25,8 @@ public class TestDocument : Document
public int GroupingKey { get; set; }
public Guid OtherGroupingKey { get; set; }
public Nested Nested { get; set; }
public List<Child> Children { get; set; }
@@ -22,6 +22,8 @@ public class TestDocumentWithKey<TKey> : IDocument<TKey>
public int SomeValue { get; set; }
public int SomeDecimalValue { get; set; }
public string SomeContent { get; set; }
public string SomeContent2 { get; set; }
public string SomeContent3 { get; set; }
@@ -31,4 +33,4 @@ public class TestDocumentWithKey<TKey> : IDocument<TKey>
public Nested Nested { get; set; }
public List<Child> Children { get; set; }
}
}
@@ -0,0 +1,29 @@
using System;
using MongoDB.Driver;
using MongoDbGenericRepository;
using MongoDbGenericRepository.DataAccess.Read;
namespace CoreUnitTests.Infrastructure;
public class TestReadOnlyMongoRepository : ReadOnlyMongoRepository
{
/// <inheritdoc />
public TestReadOnlyMongoRepository(string connectionString, string databaseName = null)
: base(connectionString, databaseName)
{
}
/// <inheritdoc />
public TestReadOnlyMongoRepository(IMongoDatabase mongoDatabase)
: base(mongoDatabase)
{
}
/// <inheritdoc />
public TestReadOnlyMongoRepository(IMongoDbContext mongoDbContext)
: base(mongoDbContext)
{
}
public void SetReader(IMongoDbReader reader) => MongoDbReader = reader;
}
@@ -0,0 +1,49 @@
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<IMongoDatabase> mongoDatabase;
private TestReadOnlyMongoRepository sut;
protected TestReadOnlyMongoRepositoryContext()
{
mongoDatabase = new Mock<IMongoDatabase>();
Fixture = new Fixture().Customize(new AutoMoqCustomization());
}
protected IFixture Fixture { get; set; }
protected TestReadOnlyMongoRepository Sut
{
get
{
if (sut != null)
{
return sut;
}
sut = Fixture.Create<TestReadOnlyMongoRepository>();
if (Reader != null)
{
sut.SetReader(Reader.Object);
}
return sut;
}
}
protected Mock<IMongoDbReader> Reader { get; set; }
protected Mock<T> MockOf<T>()
where T : class =>
Fixture.Freeze<Mock<T>>();
}