private void FakeManagerWithSubtransaction(TransactionHierarchyManager transactionHierarchyManager)
        {
            TransactionHierarchyManagerTestHelper.SetIsWriteable(transactionHierarchyManager, false);
            var fakeSubTransaction = ClientTransactionObjectMother.CreateWithParent(transactionHierarchyManager.ThisTransaction);

            TransactionHierarchyManagerTestHelper.SetSubtransaction(transactionHierarchyManager, fakeSubTransaction);
        }
        public void Serializable()
        {
            var instance = new TransactionHierarchyManager(
                ClientTransactionObjectMother.Create(),
                new SerializableClientTransactionEventSinkFake(),
                ClientTransactionObjectMother.Create(),
                new SerializableTransactionHierarchyManagerFake(),
                new SerializableClientTransactionEventSinkFake());
            var deserializedInstance = Serializer.SerializeAndDeserialize(instance);

            Assert.That(deserializedInstance.IsWriteable, Is.True);
            Assert.That(deserializedInstance.SubTransaction, Is.Null);
            Assert.That(deserializedInstance.ThisTransaction, Is.Not.Null);
            Assert.That(deserializedInstance.ParentTransaction, Is.Not.Null);
            Assert.That(deserializedInstance.ParentHierarchyManager, Is.Not.Null);
        }
        public override void SetUp()
        {
            base.SetUp();

            _thisTransaction             = ClientTransactionObjectMother.Create();
            _thisEventSinkWithStrictMock = MockRepository.GenerateStrictMock <IClientTransactionEventSink>();
            _hierarchyStrictMock         = MockRepository.GenerateStrictMock <IClientTransactionHierarchy>();

            _parentTransaction = ClientTransactionObjectMother.Create();
            _parentHierarchyManagerStrictMock = MockRepository.GenerateStrictMock <ITransactionHierarchyManager>();
            _parentHierarchyManagerStrictMock.Stub(stub => stub.TransactionHierarchy).Return(_hierarchyStrictMock);
            _parentEventSinkWithStrictMock = MockRepository.GenerateStrictMock <IClientTransactionEventSink>();

            _manager = new TransactionHierarchyManager(
                _thisTransaction, _thisEventSinkWithStrictMock, _parentTransaction, _parentHierarchyManagerStrictMock, _parentEventSinkWithStrictMock);
            _managerWithoutParent = new TransactionHierarchyManager(_thisTransaction, _thisEventSinkWithStrictMock);
        }
 public static void SetSubtransaction(TransactionHierarchyManager hierarchyManager, ClientTransaction subTransaction)
 {
     ArgumentUtility.CheckNotNull("hierarchyManager", hierarchyManager);
     PrivateInvoke.SetNonPublicField(hierarchyManager, "_subTransaction", subTransaction);
 }
 public static void SetIsWriteable(TransactionHierarchyManager transactionHierarchyManager, bool value)
 {
     ArgumentUtility.CheckNotNull("transactionHierarchyManager", transactionHierarchyManager);
     PrivateInvoke.SetNonPublicField(transactionHierarchyManager, "_isWriteable", value);
 }