public void Cloning_the_interception_context_preserves_contextual_information_but_not_mutable_state() { var objectContext = new ObjectContext(); var dbContext = DbContextMockHelper.CreateDbContext(objectContext); var interceptionContext = new EnlistTransactionInterceptionContext(); interceptionContext.SuppressExecution(); interceptionContext.Exception = new Exception("Cheez Whiz"); var transaction = new CommittableTransaction(); interceptionContext = interceptionContext .WithDbContext(dbContext) .WithObjectContext(objectContext) .WithTransaction(transaction) .AsAsync(); Assert.Equal(new[] { objectContext }, interceptionContext.ObjectContexts); Assert.Equal(new[] { dbContext }, interceptionContext.DbContexts); Assert.True(interceptionContext.IsAsync); Assert.Same(transaction, interceptionContext.Transaction); Assert.Null(interceptionContext.Exception); Assert.Null(interceptionContext.OriginalException); Assert.False(interceptionContext.IsExecutionSuppressed); }