Ejemplo n.º 1
0
        protected override IRelationEndPointManager CreateRelationEndPointManager(
            ClientTransaction clientTransaction,
            IRelationEndPointProvider endPointProvider,
            ILazyLoader lazyLoader,
            IClientTransactionEventSink eventSink)
        {
            ArgumentUtility.CheckNotNull("clientTransaction", clientTransaction);
            ArgumentUtility.CheckNotNull("endPointProvider", endPointProvider);
            ArgumentUtility.CheckNotNull("lazyLoader", lazyLoader);
            ArgumentUtility.CheckNotNull("eventSink", eventSink);

            var endPointChangeDetectionStrategy         = new SubCollectionEndPointChangeDetectionStrategy();
            var collectionEndPointDataManagerFactory    = new CollectionEndPointDataManagerFactory(endPointChangeDetectionStrategy);
            var virtualObjectEndPointDataManagerFactory = new VirtualObjectEndPointDataManagerFactory();

            var relationEndPointFactory = CreateRelationEndPointFactory(
                clientTransaction,
                endPointProvider,
                lazyLoader,
                eventSink,
                virtualObjectEndPointDataManagerFactory,
                collectionEndPointDataManagerFactory);
            var virtualEndPointStateUpdateListener        = new VirtualEndPointStateUpdateListener(eventSink);
            var stateUpdateRaisingRelationEndPointFactory = new StateUpdateRaisingRelationEndPointFactoryDecorator(
                relationEndPointFactory,
                virtualEndPointStateUpdateListener);

            var relationEndPointRegistrationAgent = new RelationEndPointRegistrationAgent(endPointProvider);

            return(new RelationEndPointManager(
                       clientTransaction, lazyLoader, eventSink, stateUpdateRaisingRelationEndPointFactory, relationEndPointRegistrationAgent));
        }
        public void Serialization()
        {
            var agent = new RelationEndPointRegistrationAgent(new SerializableVirtualEndPointProviderFake());

            var deserializedAgent = Serializer.SerializeAndDeserialize(agent);

            Assert.That(deserializedAgent.VirtualEndPointProvider, Is.Not.Null);
        }
        public override void SetUp()
        {
            base.SetUp();

            _endPointProviderMock = MockRepository.GenerateStrictMock <IVirtualEndPointProvider> ();
            _map = new RelationEndPointMap(MockRepository.GenerateStub <IClientTransactionEventSink> ());

            _realOneManyEndPointID    = RelationEndPointID.Create(DomainObjectIDs.OrderItem1, typeof(OrderItem), "Order");
            _virtualEndPointID        = RelationEndPointID.Create(DomainObjectIDs.Order1, typeof(Order), "OrderItems");
            _unidirectionalEndPointID = RelationEndPointID.Create(DomainObjectIDs.Location1, typeof(Location), "Client");

            _agent = new RelationEndPointRegistrationAgent(_endPointProviderMock);
        }