diff --git a/src/Session.Tests/MongoSessionProviderTests.cs b/src/Session.Tests/MongoSessionProviderTests.cs index 4a0aa0d..e6f30d8 100644 --- a/src/Session.Tests/MongoSessionProviderTests.cs +++ b/src/Session.Tests/MongoSessionProviderTests.cs @@ -25,7 +25,8 @@ public MongoSessionProviderTests(MongoReplicaSetResource mongoResource) _serviceProvider = new ServiceCollection() .AddSingleton(mongoOptions) - .AddMongoSessionProvider() + .AddSingleton() + .AddSingleton() .BuildServiceProvider(); } @@ -33,8 +34,8 @@ public MongoSessionProviderTests(MongoReplicaSetResource mongoResource) public async Task BeginTransactionAsync_ShouldBeginTransaction() { // Arrange - ISessionProvider sessionProvider = _serviceProvider - .GetRequiredService>(); + ITestSessionProvider sessionProvider = _serviceProvider + .GetRequiredService(); // Act ITransactionSession transactionSession = await sessionProvider @@ -51,8 +52,8 @@ public async Task BeginTransactionAsync_ShouldBeginTransaction() public async Task StartSessionAsync_ShouldStartSession() { // Arrange - ISessionProvider sessionProvider = _serviceProvider - .GetRequiredService>(); + ITestSessionProvider sessionProvider = _serviceProvider + .GetRequiredService(); // Act ISession session = await sessionProvider @@ -69,8 +70,8 @@ public async Task StartSessionAsync_ShouldStartSession() public async Task MongoSession_Dispose_ShouldDisposeSession() { // Arrange - ISessionProvider sessionProvider = _serviceProvider - .GetRequiredService>(); + ITestSessionProvider sessionProvider = _serviceProvider + .GetRequiredService(); ISession session = await sessionProvider .StartSessionAsync(CancellationToken.None); @@ -87,8 +88,8 @@ public async Task MongoSession_Dispose_ShouldDisposeSession() public async Task MongoTransactionSession_Dispose_ShouldDisposeSession() { // Arrange - ISessionProvider sessionProvider = _serviceProvider - .GetRequiredService>(); + ITestSessionProvider sessionProvider = _serviceProvider + .GetRequiredService(); ITransactionSession transactionSession = await sessionProvider .BeginTransactionAsync(CancellationToken.None); @@ -105,13 +106,13 @@ public async Task MongoTransactionSession_Dispose_ShouldDisposeSession() public async Task MongoTransactionSession_NotCommitting_ShouldNotAffectDatabase() { // Arrange - ISessionProvider sessionProvider = _serviceProvider - .GetRequiredService>(); + ITestSessionProvider sessionProvider = _serviceProvider + .GetRequiredService(); ITransactionSession transactionSession = await sessionProvider .BeginTransactionAsync(CancellationToken.None); - TestDbContext context = _serviceProvider.GetRequiredService(); - IMongoCollection collection = context.CreateCollection(); + var context = _serviceProvider.GetRequiredService(); + var collection = context.CreateCollection(); await collection.InsertOneAsync(transactionSession.GetSessionHandle(), new BsonDocument()); // Act @@ -124,7 +125,9 @@ public async Task MongoTransactionSession_NotCommitting_ShouldNotAffectDatabase( .Count.Should().Be(0); } - private class TestDbContext : MongoDbContext + private interface ITestDbContext : IMongoDbContext { } + + private class TestDbContext : MongoDbContext, ITestDbContext { public TestDbContext(MongoOptions mongoOptions) : base(mongoOptions) @@ -136,7 +139,13 @@ protected override void OnConfiguring(IMongoDatabaseBuilder mongoDatabaseBuilder } } - private interface ITestScope + private interface ITestSessionProvider : ISessionProvider { } + + private class TestSessionProvider : MongoSessionProvider, ITestSessionProvider { + public TestSessionProvider(ITestDbContext context) + : base(context) + { + } } }