Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
glucaci committed Oct 2, 2023
1 parent 4f9e014 commit b6c3016
Showing 1 changed file with 24 additions and 15 deletions.
39 changes: 24 additions & 15 deletions src/Session.Tests/MongoSessionProviderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,17 @@ public MongoSessionProviderTests(MongoReplicaSetResource mongoResource)

_serviceProvider = new ServiceCollection()
.AddSingleton(mongoOptions)
.AddMongoSessionProvider<TestDbContext, ITestScope>()
.AddSingleton<ITestDbContext, TestDbContext>()
.AddSingleton<ITestSessionProvider, TestSessionProvider>()
.BuildServiceProvider();
}

[Fact]
public async Task BeginTransactionAsync_ShouldBeginTransaction()
{
// Arrange
ISessionProvider<ITestScope> sessionProvider = _serviceProvider
.GetRequiredService<ISessionProvider<ITestScope>>();
ITestSessionProvider sessionProvider = _serviceProvider
.GetRequiredService<ITestSessionProvider>();

// Act
ITransactionSession transactionSession = await sessionProvider
Expand All @@ -51,8 +52,8 @@ public async Task BeginTransactionAsync_ShouldBeginTransaction()
public async Task StartSessionAsync_ShouldStartSession()
{
// Arrange
ISessionProvider<ITestScope> sessionProvider = _serviceProvider
.GetRequiredService<ISessionProvider<ITestScope>>();
ITestSessionProvider sessionProvider = _serviceProvider
.GetRequiredService<ITestSessionProvider>();

// Act
ISession session = await sessionProvider
Expand All @@ -69,8 +70,8 @@ public async Task StartSessionAsync_ShouldStartSession()
public async Task MongoSession_Dispose_ShouldDisposeSession()
{
// Arrange
ISessionProvider<ITestScope> sessionProvider = _serviceProvider
.GetRequiredService<ISessionProvider<ITestScope>>();
ITestSessionProvider sessionProvider = _serviceProvider
.GetRequiredService<ITestSessionProvider>();

ISession session = await sessionProvider
.StartSessionAsync(CancellationToken.None);
Expand All @@ -87,8 +88,8 @@ public async Task MongoSession_Dispose_ShouldDisposeSession()
public async Task MongoTransactionSession_Dispose_ShouldDisposeSession()
{
// Arrange
ISessionProvider<ITestScope> sessionProvider = _serviceProvider
.GetRequiredService<ISessionProvider<ITestScope>>();
ITestSessionProvider sessionProvider = _serviceProvider
.GetRequiredService<ITestSessionProvider>();

ITransactionSession transactionSession = await sessionProvider
.BeginTransactionAsync(CancellationToken.None);
Expand All @@ -105,13 +106,13 @@ public async Task MongoTransactionSession_Dispose_ShouldDisposeSession()
public async Task MongoTransactionSession_NotCommitting_ShouldNotAffectDatabase()
{
// Arrange
ISessionProvider<ITestScope> sessionProvider = _serviceProvider
.GetRequiredService<ISessionProvider<ITestScope>>();
ITestSessionProvider sessionProvider = _serviceProvider
.GetRequiredService<ITestSessionProvider>();

ITransactionSession transactionSession = await sessionProvider
.BeginTransactionAsync(CancellationToken.None);
TestDbContext context = _serviceProvider.GetRequiredService<TestDbContext>();
IMongoCollection<BsonDocument> collection = context.CreateCollection<BsonDocument>();
var context = _serviceProvider.GetRequiredService<ITestDbContext>();
var collection = context.CreateCollection<BsonDocument>();
await collection.InsertOneAsync(transactionSession.GetSessionHandle(), new BsonDocument());

// Act
Expand All @@ -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)
Expand All @@ -136,7 +139,13 @@ protected override void OnConfiguring(IMongoDatabaseBuilder mongoDatabaseBuilder
}
}

private interface ITestScope
private interface ITestSessionProvider : ISessionProvider<ITestDbContext> { }

private class TestSessionProvider : MongoSessionProvider<ITestDbContext>, ITestSessionProvider
{
public TestSessionProvider(ITestDbContext context)
: base(context)
{
}
}
}

0 comments on commit b6c3016

Please sign in to comment.