private Transaction(IMergeableConfig persistable, Action<IMergeableConfig> onCloseTransactionCallback) { if (persistable is Transaction) { throw new InvalidOperationException( "Cannot start new transaction as a transaction is already active. Only one active transaction is allowed."); } this.persistable = persistable.CheckNotNull(nameof(persistable)); this.onCloseTransactionCallback = onCloseTransactionCallback.CheckNotNull(nameof(onCloseTransactionCallback)); }
public TransactionUnitTests() { this.persistable = Substitute.For<IMergeableConfig>(); }
public static Transaction Start(IMergeableConfig persistable, Action<IMergeableConfig> onCloseTransactionCallback) { var transaction = new Transaction(persistable, onCloseTransactionCallback); transaction.Init(); return transaction; }