コード例 #1
0
        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>();
        }
コード例 #2
0
        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>();
        }