public override void SetUp()
 {
     base.SetUp();
     _listener           = NullClientTransactionListener.Instance;
     _domainObject       = DomainObjectMother.CreateObjectInTransaction <Client> (TestableClientTransaction);
     _dataContainer      = _domainObject.GetInternalDataContainerForTransaction(TestableClientTransaction);
     _propertyDefinition = GetPropertyDefinition(typeof(Client), "ParentClient");
     _relationEndPoint   = TestableClientTransaction.DataManager.GetRelationEndPointWithoutLoading(_dataContainer.AssociatedRelationEndPointIDs[0]);
 }
        public void HandleReference_OneMany_VirtualSide_Empty()
        {
            Cloner.CloneTransaction = CloneTransaction;

            Order source = DomainObjectMother.CreateObjectInTransaction <Order> (SourceTransaction);
            Order clone  = DomainObjectMother.CreateObjectInTransaction <Order> (CloneTransaction);

            PropertyAccessor sourceReference = source.Properties[typeof(Order), "OrderItems"];
            PropertyAccessor cloneReference  = clone.Properties[typeof(Order), "OrderItems"];

            HandleReference_OneMany_VirtualSide_Checks_Null(sourceReference, cloneReference);
        }
        private void CheckClientTransactionDiffersException(Action <EndPointDelegatingCollectionData, DomainObject> action)
        {
            var orderItemInOtherTransaction = DomainObjectMother.CreateObjectInTransaction <OrderItem> (ClientTransaction.CreateRootTransaction());

            try
            {
                action(_delegatingData, orderItemInOtherTransaction);
                Assert.Fail("Expected ClientTransactionsDifferException");
            }
            catch (ClientTransactionsDifferException)
            {
                // ok
            }
        }
        public void HandleReference_OneOne_RealSide_Null()
        {
            Computer source        = DomainObjectMother.CreateObjectInTransaction <Computer> (SourceTransaction);
            Computer clone         = DomainObjectMother.CreateObjectInTransaction <Computer> (CloneTransaction);
            Employee sourceRelated = null;
            Employee cloneRelated  = null;

            PropertyAccessor sourceReference = source.Properties[typeof(Computer), "Employee"];
            PropertyAccessor cloneReference  = clone.Properties[typeof(Computer), "Employee"];

            source.Employee = sourceRelated;

            HandleReference_OneOne_RealSide_Checks_Null(sourceRelated, sourceReference, cloneRelated, cloneReference);
        }
        public void HandleReference_OneMany_RealSide_Null()
        {
            OrderItem source        = DomainObjectMother.CreateObjectInTransaction <OrderItem> (SourceTransaction);
            OrderItem clone         = DomainObjectMother.CreateObjectInTransaction <OrderItem> (CloneTransaction);
            Order     sourceRelated = null;
            Order     cloneRelated  = null;

            PropertyAccessor sourceReference = source.Properties[typeof(OrderItem), "Order"];
            PropertyAccessor cloneReference  = clone.Properties[typeof(OrderItem), "Order"];

            source.Order = sourceRelated;

            HandleReference_OneMany_RealSide_Checks_Null(sourceRelated, sourceReference, cloneRelated, cloneReference);
        }
        public void HandleReference_OneOne_VirtualSide()
        {
            Employee source        = DomainObjectMother.CreateObjectInTransaction <Employee> (SourceTransaction);
            Employee clone         = DomainObjectMother.CreateObjectInTransaction <Employee> (CloneTransaction);
            Computer sourceRelated = DomainObjectMother.CreateObjectInTransaction <Computer> (SourceTransaction);
            Computer cloneRelated  = DomainObjectMother.CreateObjectInTransaction <Computer> (CloneTransaction);

            PropertyAccessor sourceReference = source.Properties[typeof(Employee), "Computer"];
            PropertyAccessor cloneReference  = clone.Properties[typeof(Employee), "Computer"];

            source.Computer = sourceRelated;

            HandleReference_OneOne_VirtualSide_Checks(sourceRelated, sourceReference, cloneRelated, cloneReference);
        }
        public override void SetUp()
        {
            base.SetUp();

            _memoryAppender = new MemoryAppender();
            BasicConfigurator.Configure(_memoryAppender);

            _clientTransaction = new TestableClientTransaction();

            _listener = new LoggingClientTransactionListener();

            _domainObject       = DomainObjectMother.CreateObjectInTransaction <Client> (_clientTransaction);
            _dataContainer      = _domainObject.GetInternalDataContainerForTransaction(_clientTransaction);
            _propertyDefinition = GetPropertyDefinition(typeof(Client), "ParentClient");

            _domainObject2 = DomainObjectMother.CreateObjectInTransaction <Client> (_clientTransaction);
            _domainObject3 = DomainObjectMother.CreateObjectInTransaction <Client> (_clientTransaction);
        }