public void ShouldPreserveExistingTransaction() { using (var context = new TestDbContext(_connection)) using (var transaction = context.Database.BeginTransaction()) { int methodCalls = 0; context.ExecuteInTransaction(() => { methodCalls++; Assert.AreEqual(transaction, context.Database.CurrentTransaction); return(0); }); Assert.AreEqual(transaction, context.Database.CurrentTransaction); Assert.AreEqual(1, methodCalls); } }
public void ShouldCreateNewTransaction() { using (var context = new TestDbContext(_connection)) { Assert.IsNull(context.Database.CurrentTransaction); int methodCalls = 0; context.ExecuteInTransaction(() => { methodCalls++; Assert.IsNotNull(context.Database.CurrentTransaction); return(0); }); Assert.IsNull(context.Database.CurrentTransaction); Assert.AreEqual(1, methodCalls); } }
public async Task ShouldPreserveExistingTransactionAsync() { using (var context = new TestDbContext(_connection)) using (var transaction = context.Database.BeginTransaction()) { int methodCalls = 0; await context.ExecuteInTransaction(async() => { methodCalls++; Assert.AreEqual(transaction, context.Database.CurrentTransaction); await Task.Delay(1); return(0); }); Assert.AreEqual(transaction, context.Database.CurrentTransaction); Assert.AreEqual(1, methodCalls); } }
public async Task ShouldCreateNewTransactionAsync() { using (var context = new TestDbContext(_connection)) { Assert.IsNull(context.Database.CurrentTransaction); int methodCalls = 0; await context.ExecuteInTransaction(async() => { methodCalls++; Assert.IsNotNull(context.Database.CurrentTransaction); await Task.Delay(1); return(0); }); Assert.IsNull(context.Database.CurrentTransaction); Assert.AreEqual(1, methodCalls); } }