public void RaiseRelationReadEvent(
     DomainObject domainObject,
     IRelationEndPointDefinition relationEndPointDefinition,
     ReadOnlyDomainObjectCollectionAdapter <DomainObject> relatedObjects,
     ValueAccess valueAccess)
 {
 }
Пример #2
0
        public void AssociatedEndPointID()
        {
            var associatedCollection = DomainObjectIDs.Order1.GetObject <Order> ().OrderItems;
            var readOnlyAdapter      = new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (associatedCollection);

            Assert.That(readOnlyAdapter.AssociatedEndPointID, Is.EqualTo(associatedCollection.AssociatedEndPointID));
        }
 public virtual void RelationRead(
     ClientTransaction clientTransaction,
     DomainObject domainObject,
     IRelationEndPointDefinition relationEndPointDefinition,
     ReadOnlyDomainObjectCollectionAdapter <DomainObject> relatedObjects,
     ValueAccess valueAccess)
 {
     // Handled by Begin event
 }
Пример #4
0
        public void RaiseRelationReadEvent_Collection()
        {
            var endPointDefinition = GetSomeEndPointDefinition();

            var relatedObjects = new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (new DomainObjectCollection());

            CheckEventWithListenersLast(
                s => s.RaiseRelationReadEvent(_domainObject1, endPointDefinition, relatedObjects, ValueAccess.Current),
                l => l.RelationRead(_clientTransaction, _domainObject1, endPointDefinition, relatedObjects, ValueAccess.Current),
                x => x.RelationRead(_clientTransaction, _domainObject1, endPointDefinition, relatedObjects, ValueAccess.Current));
        }
Пример #5
0
        public override void SetUp()
        {
            base.SetUp();
            _wrappedData            = new DomainObjectCollection(typeof(Order));
            _readOnlyAdapter        = new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (_wrappedData);
            _readOnlyAdapterAsIList = _readOnlyAdapter;

            _order1 = DomainObjectIDs.Order1.GetObject <Order> ();
            _order2 = DomainObjectIDs.Order2.GetObject <Order> ();
            _order3 = DomainObjectIDs.Order3.GetObject <Order> ();
            _order4 = DomainObjectIDs.Order4.GetObject <Order> ();
        }
Пример #6
0
        public void RaiseRelationReadEvent(
            DomainObject domainObject,
            IRelationEndPointDefinition relationEndPointDefinition,
            ReadOnlyDomainObjectCollectionAdapter <DomainObject> relatedObjects,
            ValueAccess valueAccess)
        {
            ArgumentUtility.CheckNotNull("domainObject", domainObject);
            ArgumentUtility.CheckNotNull("relationEndPointDefinition", relationEndPointDefinition);
            ArgumentUtility.CheckNotNull("relatedObjects", relatedObjects);

            _extensionCollection.RelationRead(_clientTransaction, domainObject, relationEndPointDefinition, relatedObjects, valueAccess);
            _listenerCollection.RelationRead(_clientTransaction, domainObject, relationEndPointDefinition, relatedObjects, valueAccess);
        }
Пример #7
0
        public void IsDataComplete()
        {
            Assert.That(_readOnlyAdapter.IsDataComplete, Is.True);

            var associatedCollection = DomainObjectIDs.Order1.GetObject <Order> ().OrderItems;

            UnloadService.UnloadVirtualEndPoint(
                TestableClientTransaction,
                associatedCollection.AssociatedEndPointID);

            var readOnlyAdapter = new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (associatedCollection);

            Assert.That(readOnlyAdapter.IsDataComplete, Is.False);
        }
        public void RelationReadWithOneToManyRelation()
        {
            var orderItems = new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (_order.OrderItems);
            IRelationEndPointDefinition endPointDefinition = GetEndPointDefinition(typeof(Order), "OrderItems");

            using (_mockRepository.Ordered())
            {
                _extension1.Expect(mock => mock.RelationRead(TestableClientTransaction, _order, endPointDefinition, orderItems, ValueAccess.Original));
                _extension2.Expect(mock => mock.RelationRead(TestableClientTransaction, _order, endPointDefinition, orderItems, ValueAccess.Original));
            }

            _mockRepository.ReplayAll();

            _collectionWithExtensions.RelationRead(TestableClientTransaction, _order, endPointDefinition, orderItems, ValueAccess.Original);

            _mockRepository.VerifyAll();
        }
 public void RelationRead(
     ClientTransaction clientTransaction,
     DomainObject domainObject,
     IRelationEndPointDefinition relationEndPointDefinition,
     ReadOnlyDomainObjectCollectionAdapter <DomainObject> relatedObjects,
     ValueAccess valueAccess)
 {
     if (s_log.IsDebugEnabled())
     {
         var domainObjectsString = relatedObjects.IsDataComplete ? GetDomainObjectsString(relatedObjects) : "<data not loaded>";
         s_log.DebugFormat(
             "{0} RelationRead: {1} ({2}, {3}): {4}",
             clientTransaction.ID,
             relationEndPointDefinition.PropertyName,
             valueAccess,
             domainObject.ID,
             domainObjectsString);
     }
 }
        public void RelationRead_Collection()
        {
            var relationEndPointDefinition = MockRepository.GenerateStub <IRelationEndPointDefinition>();

            relationEndPointDefinition.Stub(n => n.PropertyName).Return("Items");

            var values =
                new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (new DomainObjectCollection(new[] { _domainObject2, _domainObject3 }, null));

            CheckLoggingMethod(
                () => _listener.RelationRead(_clientTransaction, _domainObject, relationEndPointDefinition, values, ValueAccess.Current),
                string.Format(
                    "{0} RelationRead: {1} ({2}, {3}): {4}, {5}",
                    _clientTransaction.ID,
                    relationEndPointDefinition.PropertyName,
                    ValueAccess.Current,
                    _domainObject.ID,
                    _domainObject2.ID,
                    _domainObject3.ID));
        }
        public void RelationRead_LongCollection()
        {
            var relationEndPointDefinition = MockRepository.GenerateStub <IRelationEndPointDefinition>();

            relationEndPointDefinition.Stub(n => n.PropertyName).Return("Items");

            var values = new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (
                new DomainObjectCollection(
                    Enumerable.Range(0, 100).Select(i => LifetimeService.NewObject(_clientTransaction, typeof(Client), ParamList.Empty)),
                    null));

            CheckLoggingMethod(
                () => _listener.RelationRead(_clientTransaction, _domainObject, relationEndPointDefinition, values, ValueAccess.Current),
                string.Format(
                    "{0} RelationRead: {1} ({2}, {3}): {4}, +90",
                    _clientTransaction.ID,
                    relationEndPointDefinition.PropertyName,
                    ValueAccess.Current,
                    _domainObject.ID,
                    string.Join(", ", values.Take(10))));
        }
Пример #12
0
 public void RelationRead(ClientTransaction clientTransaction, DomainObject domainObject, IRelationEndPointDefinition relationEndPointDefinition, ReadOnlyDomainObjectCollectionAdapter <DomainObject> relatedObjects, ValueAccess valueAccess)
 {
     throw CreateException();
 }
 public virtual void RelationRead(ClientTransaction clientTransaction, DomainObject domainObject, IRelationEndPointDefinition relationEndPointDefinition, ReadOnlyDomainObjectCollectionAdapter <DomainObject> relatedObjects, ValueAccess valueAccess)
 {
     foreach (var listener in _listeners)
     {
         listener.RelationRead(clientTransaction, domainObject, relationEndPointDefinition, relatedObjects, valueAccess);
     }
 }
        public void AggregatedClientsAreNotified()
        {
            _compoundListener.AddListener(_listener1);
            _compoundListener.AddListener(_listener2);

            var order              = Order.NewObject();
            var order3             = Order.NewObject();
            var domainObjects      = new ReadOnlyCollection <DomainObject> (new DomainObject[0]);
            var persistableData    = new ReadOnlyCollection <PersistableData> (new PersistableData[0]);
            var relatedObjects     = new ReadOnlyDomainObjectCollectionAdapter <DomainObject> (new DomainObjectCollection());
            var clientTransaction2 = ClientTransaction.CreateRootTransaction();

            var realtionEndPointDefinitionMock = MockRepository.GenerateMock <IRelationEndPointDefinition>();

            CheckNotification(listener => listener.TransactionInitialize(TestableClientTransaction));
            CheckNotification(listener => listener.TransactionDiscard(TestableClientTransaction));

            CheckNotification(listener => listener.SubTransactionCreating(TestableClientTransaction));
            CheckNotification(listener => listener.SubTransactionInitialize(TestableClientTransaction, clientTransaction2));
            CheckNotification(listener => listener.SubTransactionCreated(TestableClientTransaction, clientTransaction2));

            CheckNotification(listener => listener.NewObjectCreating(TestableClientTransaction, typeof(string)));

            CheckNotification(listener => listener.ObjectsLoading(TestableClientTransaction, new ReadOnlyCollection <ObjectID> (new ObjectID[0])));
            CheckNotification(listener => listener.ObjectsLoaded(TestableClientTransaction, domainObjects));
            CheckNotification(listener => listener.ObjectsNotFound(TestableClientTransaction, new ReadOnlyCollection <ObjectID> (new ObjectID[0])));

            CheckNotification(listener => listener.ObjectsUnloading(TestableClientTransaction, domainObjects));
            CheckNotification(listener => listener.ObjectsUnloaded(TestableClientTransaction, domainObjects));

            CheckNotification(listener => listener.ObjectDeleting(TestableClientTransaction, order));
            CheckNotification(listener => listener.ObjectDeleted(TestableClientTransaction, order));

            var propertyDefinition = PropertyDefinitionObjectMother.CreateForFakePropertyInfo();

            CheckNotification(listener => listener.PropertyValueReading(
                                  TestableClientTransaction,
                                  order,
                                  propertyDefinition,
                                  ValueAccess.Original));
            CheckNotification(listener => listener.PropertyValueRead(
                                  TestableClientTransaction,
                                  order,
                                  propertyDefinition,
                                  "Foo",
                                  ValueAccess.Original));

            CheckNotification(listener => listener.PropertyValueChanging(
                                  TestableClientTransaction,
                                  order,
                                  propertyDefinition,
                                  "Foo",
                                  "Bar"));
            CheckNotification(listener => listener.PropertyValueChanged(
                                  TestableClientTransaction,
                                  order,
                                  propertyDefinition,
                                  "Foo",
                                  "Bar"));

            CheckNotification(listener => listener.RelationRead(TestableClientTransaction, order, realtionEndPointDefinitionMock, order, ValueAccess.Original));
            CheckNotification(listener => listener.RelationRead(TestableClientTransaction, order, realtionEndPointDefinitionMock, relatedObjects, ValueAccess.Original));
            CheckNotification(listener => listener.RelationReading(TestableClientTransaction, order, realtionEndPointDefinitionMock, ValueAccess.Current));

            CheckNotification(listener => listener.RelationChanging(TestableClientTransaction, order, realtionEndPointDefinitionMock, order, order3));
            CheckNotification(listener => listener.RelationChanged(TestableClientTransaction, order, realtionEndPointDefinitionMock, order, order3));

            var eventRegistrar = MockRepository.GenerateStub <ICommittingEventRegistrar>();

            CheckNotification(listener => listener.TransactionCommitting(TestableClientTransaction, domainObjects, eventRegistrar));
            CheckNotification(listener => listener.TransactionCommitValidate(TestableClientTransaction, persistableData));
            CheckNotification(listener => listener.TransactionCommitted(TestableClientTransaction, domainObjects));
            CheckNotification(listener => listener.TransactionRollingBack(TestableClientTransaction, domainObjects));
            CheckNotification(listener => listener.TransactionRolledBack(TestableClientTransaction, domainObjects));

            var id       = RelationEndPointID.Create(order.ID, typeof(Order).FullName + ".Customer");
            var endPoint = RelationEndPointObjectMother.CreateObjectEndPoint(id, null);

            CheckNotification(listener => listener.RelationEndPointMapRegistering(TestableClientTransaction, endPoint));

            CheckNotification(listener => listener.RelationEndPointMapUnregistering(TestableClientTransaction, endPoint.ID));
            CheckNotification(listener => listener.RelationEndPointBecomingIncomplete(TestableClientTransaction, endPoint.ID));

            CheckNotification(listener => listener.ObjectMarkedInvalid(TestableClientTransaction, order));
            CheckNotification(listener => listener.ObjectMarkedNotInvalid(TestableClientTransaction, order));

            CheckNotification(listener => listener.DataContainerMapRegistering(TestableClientTransaction, order.InternalDataContainer));
            CheckNotification(listener => listener.DataContainerMapUnregistering(TestableClientTransaction, order.InternalDataContainer));

            CheckNotification(listener => listener.DataContainerStateUpdated(TestableClientTransaction, order.InternalDataContainer, StateType.Deleted));
            CheckNotification(listener => listener.VirtualRelationEndPointStateUpdated(TestableClientTransaction, endPoint.ID, true));
        }