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 <MongoUnitOfWork> >(); var sut = new MongoUnitOfWork(client, logger); 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 <MongoUnitOfWork> >(); var sut = new MongoUnitOfWork(client, logger); var result = await sut.StartTransactionAsync(); result.Should().BeOfType <NullTransaction>(); }