Exemplo n.º 1
0
        public void ModifyingProperty_Loaded()
        {
            _transporter.Load(DomainObjectIDs.Computer1);

            var source = (Computer)_transporter.GetTransportedObject(DomainObjectIDs.Computer1);

            _listener.PropertyValueChanging(TestableClientTransaction, source, GetPropertyDefinition(typeof(Computer), "SerialNumber"), null, null);
        }
        public static byte[] GetBinaryDataFor(params ObjectID[] ids)
        {
            var transporter = new DomainObjectTransporter();

            foreach (ObjectID id in ids)
            {
                transporter.Load(id);
            }
            return(GetBinaryDataFor(transporter));
        }
Exemplo n.º 3
0
        public void ChangedBySource_RelatedObjectToExistingObject_VirtualSide()
        {
            var transporter = new DomainObjectTransporter();

            transporter.Load(DomainObjectIDs.Computer1);
            transporter.Load(DomainObjectIDs.Computer2);
            transporter.Load(DomainObjectIDs.Employee3);
            transporter.Load(DomainObjectIDs.Employee4);
            var employee = (Employee)transporter.GetTransportedObject(DomainObjectIDs.Employee3);

            employee.Computer = (Computer)transporter.GetTransportedObject(DomainObjectIDs.Computer2);

            byte[] binaryData    = DomainObjectTransporterTestHelper.GetBinaryDataFor(transporter);
            var    imported      = DomainObjectTransporterTestHelper.ImportObjects(binaryData);
            var    loadedObject1 = (Computer)imported.Find(obj => obj.ID == DomainObjectIDs.Computer2);
            var    loadedObject2 = (Employee)imported.Find(obj => obj.ID == DomainObjectIDs.Employee3);

            Assert.That(loadedObject2.Computer, Is.SameAs(loadedObject1));
        }
Exemplo n.º 4
0
        private byte[] GetBinaryDataForChangedObject(ObjectID id, string propertyToTouch, object newValue)
        {
            var transporter = new DomainObjectTransporter();

            transporter.Load(id);
            var domainObject = transporter.GetTransportedObject(id);
            var properties   = new PropertyIndexer(domainObject);

            properties[propertyToTouch].SetValueWithoutTypeCheck(newValue);
            return(DomainObjectTransporterTestHelper.GetBinaryDataFor(transporter));
        }
        public void FinishTransport_FilterCalledForEachChangedObject()
        {
            var transporter = new DomainObjectTransporter();

            transporter.Load(DomainObjectIDs.ClassWithAllDataTypes1);
            transporter.Load(DomainObjectIDs.ClassWithAllDataTypes2);
            transporter.Load(DomainObjectIDs.Order1);

            ModifyDatabase(
                delegate
            {
                ClassWithAllDataTypes c1 = DomainObjectIDs.ClassWithAllDataTypes1.GetObject <ClassWithAllDataTypes> ();
                ClassWithAllDataTypes c2 = DomainObjectIDs.ClassWithAllDataTypes2.GetObject <ClassWithAllDataTypes> ();
                c1.Delete();
                c2.Delete();
            });

            TransportedDomainObjects transportedObjects = Transport(transporter);

            var expectedObjects = new List <DomainObject>();

            using (transportedObjects.DataTransaction.EnterNonDiscardingScope())
            {
                expectedObjects.Add(DomainObjectIDs.ClassWithAllDataTypes1.GetObject <ClassWithAllDataTypes> ());
                expectedObjects.Add(DomainObjectIDs.ClassWithAllDataTypes2.GetObject <ClassWithAllDataTypes> ());
            }

            var filteredObjects = new List <DomainObject>();

            transportedObjects.FinishTransport(
                delegate(DomainObject domainObject)
            {
                filteredObjects.Add(domainObject);
                return(true);
            });
            Assert.That(filteredObjects, Is.EquivalentTo(expectedObjects));
        }
        private TransportedDomainObjects TransportAndDeleteObjects(params ObjectID[] objectsToLoadAndDelete)
        {
            var transporter = new DomainObjectTransporter();

            foreach (ObjectID id in objectsToLoadAndDelete)
            {
                transporter.Load(id);
            }

            ModifyDatabase(
                delegate
            {
                foreach (var id in objectsToLoadAndDelete)
                {
                    var domainObject = LifetimeService.GetObject(ClientTransaction.Current, id, false);
                    LifetimeService.DeleteObject(ClientTransaction.Current, domainObject);
                }
            });

            return(Transport(transporter));
        }
        private TransportedDomainObjects TransportAndChangeObjects(string propertyName, object newValue, params ObjectID[] objectsToLoadAndDelete)
        {
            var transporter = new DomainObjectTransporter();

            foreach (ObjectID id in objectsToLoadAndDelete)
            {
                transporter.Load(id);
            }

            ModifyDatabase(
                delegate
            {
                foreach (var id in objectsToLoadAndDelete)
                {
                    var domainObject = LifetimeService.GetObject(ClientTransaction.Current, id, false);
                    var properties   = new PropertyIndexer(domainObject);
                    properties[propertyName].SetValueWithoutTypeCheck(newValue);
                }
            });

            return(Transport(transporter));
        }
Exemplo n.º 8
0
        public void Load()
        {
            DomainObject domainObject = _transporter.Load(DomainObjectIDs.Order1);

            Assert.That(_transporter.ObjectIDs.Count, Is.EqualTo(1));
            Assert.That(_transporter.ObjectIDs, Is.EqualTo(new[] { DomainObjectIDs.Order1 }));

            Assert.That(_transporter.GetTransportedObject(domainObject.ID), Is.SameAs(domainObject));
        }