public TransactionInformation(ITransaction transaction, TKey key, TValue originalValue, bool exists, TestReliableDictionary <TKey, TValue> owner)
            {
                _lock         = new object();
                _key          = key;
                _owner        = owner;
                Exists        = exists;
                OriginalValue = originalValue;
                _transaction  = transaction as TestTransaction;
                if (_transaction == null)
                {
                    throw new InvalidOperationException("Incompatible transaction");
                }

                RegisterTransaction();
            }
 public TestReliableStateManager()
 {
     _states = new TestReliableDictionary <string, IReliableState>();
     _states.DictionaryChanged += OnStatesOnDictionaryChanged;
 }