protected override IRelationEndPointManager CreateRelationEndPointManager(
            ClientTransaction constructedTransaction,
            IRelationEndPointProvider endPointProvider,
            ILazyLoader lazyLoader,
            IClientTransactionEventSink eventSink)
        {
            ArgumentUtility.CheckNotNull("constructedTransaction", constructedTransaction);
            ArgumentUtility.CheckNotNull("endPointProvider", endPointProvider);
            ArgumentUtility.CheckNotNull("lazyLoader", lazyLoader);
            ArgumentUtility.CheckNotNull("eventSink", eventSink);

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

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

            var relationEndPointRegistrationAgent = new RootRelationEndPointRegistrationAgent(endPointProvider);

            return(new RelationEndPointManager(
                       constructedTransaction, lazyLoader, eventSink, stateUpdateRaisingRelationEndPointFactory, relationEndPointRegistrationAgent));
        }
        public static VirtualObjectEndPoint CreateVirtualObjectEndPoint(RelationEndPointID endPointID, ClientTransaction clientTransaction)
        {
            var lazyLoader           = ClientTransactionTestHelper.GetDataManager(clientTransaction);
            var endPointProvider     = ClientTransactionTestHelper.GetDataManager(clientTransaction);
            var transactionEventSink = ClientTransactionTestHelper.GetEventBroker(clientTransaction);
            var dataManagerFactory   = new VirtualObjectEndPointDataManagerFactory();

            return(new VirtualObjectEndPoint(
                       clientTransaction,
                       endPointID,
                       lazyLoader,
                       endPointProvider,
                       transactionEventSink,
                       dataManagerFactory));
        }
Пример #3
0
 public override void SetUp()
 {
     _factory    = new VirtualObjectEndPointDataManagerFactory();
     _endPointID = RelationEndPointObjectMother.CreateRelationEndPointID(DomainObjectIDs.Order1, "OrderTicket");
 }