public virtual async Task Intercept_connection_with_multiple_interceptors(bool async) { var interceptor1 = new TransactionInterceptor(); var interceptor2 = new WrappingTransactionInterceptor(); var interceptor3 = new TransactionInterceptor(); var interceptor4 = new WrappingTransactionInterceptor(); using (var context = CreateContext( new IInterceptor[] { new NoOpTransactionInterceptor(), interceptor1, interceptor2 }, new IInterceptor[] { interceptor3, interceptor4, new NoOpTransactionInterceptor() })) { using (var contextTransaction = async ? await context.Database.BeginTransactionAsync() : context.Database.BeginTransaction()) { Assert.IsType <WrappedDbTransaction>(contextTransaction.GetDbTransaction()); AssertBeginTransaction(context, interceptor1, async); AssertBeginTransaction(context, interceptor2, async); AssertBeginTransaction(context, interceptor3, async); AssertBeginTransaction(context, interceptor4, async); } } }
public virtual async Task Intercept_connection_with_multiple_interceptors(bool async) { var interceptor1 = new TransactionInterceptor(); var interceptor2 = new WrappingTransactionInterceptor(); var interceptor3 = new TransactionInterceptor(); var interceptor4 = new WrappingTransactionInterceptor(); using var context = CreateContext( new IInterceptor[] { new NoOpTransactionInterceptor(), interceptor1, interceptor2 }, new IInterceptor[] { interceptor3, interceptor4, new NoOpTransactionInterceptor() }); using var listener = Fixture.SubscribeToDiagnosticListener(context.ContextId); using var contextTransaction = async ? await context.Database.BeginTransactionAsync() : context.Database.BeginTransaction(); Assert.IsType <WrappedDbTransaction>(contextTransaction.GetDbTransaction()); AssertBeginTransaction(context, interceptor1, async); AssertBeginTransaction(context, interceptor2, async); AssertBeginTransaction(context, interceptor3, async); AssertBeginTransaction(context, interceptor4, async); AssertBeginTransactionEvents(listener); }