public async Task StartTransactionAsync_should_return_MongoTransaction_if_transactions_supported() { var session = NSubstitute.Substitute.For <IClientSessionHandle>(); var client = NSubstitute.Substitute.For <IMongoClient>(); client.StartSession() .ReturnsForAnyArgs(session); var logger = NSubstitute.Substitute.For <ILogger <MongoTransactionManager> >(); var dbContext = NSubstitute.Substitute.For <IDbContext>(); var sut = new MongoTransactionManager(client, logger, dbContext); var result = await sut.StartTransactionAsync(); result.Should().BeOfType <MongoTransaction>(); }
public async Task StartTransactionAsync_should_return_NullTransaction_if_transactions_not_supported() { var session = NSubstitute.Substitute.For <IClientSessionHandle>(); session.When(s => s.StartTransaction(Arg.Any <TransactionOptions>())) .Throw <NotSupportedException>(); var client = NSubstitute.Substitute.For <IMongoClient>(); client.StartSession() .ReturnsForAnyArgs(session); var logger = NSubstitute.Substitute.For <ILogger <MongoTransactionManager> >(); var dbContext = NSubstitute.Substitute.For <IDbContext>(); var sut = new MongoTransactionManager(client, logger, dbContext); var result = await sut.StartTransactionAsync(); result.Should().BeOfType <NullTransaction>(); }