public VirtualObjectEndPoint(
            ClientTransaction clientTransaction,
            RelationEndPointID id,
            ILazyLoader lazyLoader,
            IRelationEndPointProvider endPointProvider,
            IClientTransactionEventSink transactionEventSink,
            IVirtualObjectEndPointDataManagerFactory dataManagerFactory)
            : base(
                ArgumentUtility.CheckNotNull("clientTransaction", clientTransaction),
                ArgumentUtility.CheckNotNull("id", id))
        {
            ArgumentUtility.CheckNotNull("lazyLoader", lazyLoader);
            ArgumentUtility.CheckNotNull("endPointProvider", endPointProvider);
            ArgumentUtility.CheckNotNull("transactionEventSink", transactionEventSink);
            ArgumentUtility.CheckNotNull("dataManagerFactory", dataManagerFactory);

            if (!ID.Definition.IsVirtual)
            {
                throw new ArgumentException("End point ID must refer to a virtual end point.", "id");
            }

            _lazyLoader           = lazyLoader;
            _endPointProvider     = endPointProvider;
            _transactionEventSink = transactionEventSink;
            _dataManagerFactory   = dataManagerFactory;

            SetIncompleteState();

            _hasBeenTouched = false;
        }
Пример #2
0
        public RelationEndPointFactory(
            ClientTransaction clientTransaction,
            IRelationEndPointProvider endPointProvider,
            ILazyLoader lazyLoader,
            IClientTransactionEventSink transactionEventSink,
            IVirtualObjectEndPointDataManagerFactory virtualObjectEndPointDataManagerFactory,
            ICollectionEndPointDataManagerFactory collectionEndPointDataManagerFactory,
            ICollectionEndPointCollectionProvider collectionEndPointCollectionProvider,
            IAssociatedCollectionDataStrategyFactory associatedCollectionDataStrategyFactory)
        {
            ArgumentUtility.CheckNotNull("clientTransaction", clientTransaction);
            ArgumentUtility.CheckNotNull("endPointProvider", endPointProvider);
            ArgumentUtility.CheckNotNull("lazyLoader", lazyLoader);
            ArgumentUtility.CheckNotNull("transactionEventSink", transactionEventSink);
            ArgumentUtility.CheckNotNull("virtualObjectEndPointDataManagerFactory", virtualObjectEndPointDataManagerFactory);
            ArgumentUtility.CheckNotNull("collectionEndPointDataManagerFactory", collectionEndPointDataManagerFactory);
            ArgumentUtility.CheckNotNull("collectionEndPointCollectionProvider", collectionEndPointCollectionProvider);
            ArgumentUtility.CheckNotNull("associatedCollectionDataStrategyFactory", associatedCollectionDataStrategyFactory);

            _clientTransaction    = clientTransaction;
            _endPointProvider     = endPointProvider;
            _lazyLoader           = lazyLoader;
            _transactionEventSink = transactionEventSink;
            _virtualObjectEndPointDataManagerFactory = virtualObjectEndPointDataManagerFactory;
            _collectionEndPointDataManagerFactory    = collectionEndPointDataManagerFactory;
            _collectionEndPointCollectionProvider    = collectionEndPointCollectionProvider;
            _associatedCollectionDataStrategyFactory = associatedCollectionDataStrategyFactory;
        }
        protected virtual RelationEndPointFactory CreateRelationEndPointFactory(
            ClientTransaction constructedTransaction,
            IRelationEndPointProvider endPointProvider,
            ILazyLoader lazyLoader,
            IClientTransactionEventSink eventSink,
            IVirtualObjectEndPointDataManagerFactory virtualObjectEndPointDataManagerFactory,
            ICollectionEndPointDataManagerFactory collectionEndPointDataManagerFactory)
        {
            ArgumentUtility.CheckNotNull("constructedTransaction", constructedTransaction);
            ArgumentUtility.CheckNotNull("endPointProvider", endPointProvider);
            ArgumentUtility.CheckNotNull("lazyLoader", lazyLoader);
            ArgumentUtility.CheckNotNull("eventSink", eventSink);
            ArgumentUtility.CheckNotNull("virtualObjectEndPointDataManagerFactory", virtualObjectEndPointDataManagerFactory);
            ArgumentUtility.CheckNotNull("collectionEndPointDataManagerFactory", collectionEndPointDataManagerFactory);

            var associatedCollectionDataStrategyFactory = new AssociatedCollectionDataStrategyFactory(endPointProvider);
            var collectionEndPointCollectionProvider    = new CollectionEndPointCollectionProvider(associatedCollectionDataStrategyFactory);

            return(new RelationEndPointFactory(
                       constructedTransaction,
                       endPointProvider,
                       lazyLoader,
                       eventSink,
                       virtualObjectEndPointDataManagerFactory,
                       collectionEndPointDataManagerFactory,
                       collectionEndPointCollectionProvider,
                       associatedCollectionDataStrategyFactory));
        }
Пример #4
0
 public IncompleteVirtualObjectEndPointLoadState(
     IEndPointLoader endPointLoader,
     IVirtualObjectEndPointDataManagerFactory dataManagerFactory)
     : base(endPointLoader)
 {
     ArgumentUtility.CheckNotNull("dataManagerFactory", dataManagerFactory);
     _dataManagerFactory = dataManagerFactory;
 }
        protected VirtualObjectEndPoint(FlattenedDeserializationInfo info)
            : base(info)
        {
            _lazyLoader           = info.GetValueForHandle <ILazyLoader> ();
            _endPointProvider     = info.GetValueForHandle <IRelationEndPointProvider> ();
            _transactionEventSink = info.GetValueForHandle <IClientTransactionEventSink> ();
            _dataManagerFactory   = info.GetValueForHandle <IVirtualObjectEndPointDataManagerFactory> ();

            _loadState      = info.GetValue <IVirtualObjectEndPointLoadState> ();
            _hasBeenTouched = info.GetBoolValue();
        }
Пример #6
0
        public override void SetUp()
        {
            base.SetUp();

            _clientTransaction        = ClientTransaction.CreateRootTransaction();
            _endPointProviderStub     = MockRepository.GenerateStub <IRelationEndPointProvider> ();
            _lazyLoaderStub           = MockRepository.GenerateStub <ILazyLoader> ();
            _transactionEventSinkStub = MockRepository.GenerateStub <IClientTransactionEventSink>();

            var virtualObjectEndPointDataManager = MockRepository.GenerateStub <IVirtualObjectEndPointDataManager> ();

            virtualObjectEndPointDataManager.Stub(stub => stub.OriginalOppositeEndPoint).Return(null);
            _virtualObjectEndPointDataManagerFactoryStub = MockRepository.GenerateStub <IVirtualObjectEndPointDataManagerFactory> ();
            _virtualObjectEndPointDataManagerFactoryStub
            .Stub(stub => stub.CreateEndPointDataManager(Arg <RelationEndPointID> .Is.Anything))
            .Return(virtualObjectEndPointDataManager);

            var collectionEndPointDataManager = MockRepository.GenerateStub <ICollectionEndPointDataManager> ();

            collectionEndPointDataManager.Stub(stub => stub.OriginalOppositeEndPoints).Return(new IRealObjectEndPoint[0]);
            _collectionEndPointDataManagerFactoryStub = MockRepository.GenerateStub <ICollectionEndPointDataManagerFactory> ();
            _collectionEndPointDataManagerFactoryStub
            .Stub(stub => stub.CreateEndPointDataManager(Arg <RelationEndPointID> .Is.Anything))
            .Return(collectionEndPointDataManager);

            _collectionEndPointCollectionProviderStub = MockRepository.GenerateStub <ICollectionEndPointCollectionProvider>();
            _associatedCollectionStrategyFactoryStub  = MockRepository.GenerateStub <IAssociatedCollectionDataStrategyFactory>();

            _factory = new RelationEndPointFactory(
                _clientTransaction,
                _endPointProviderStub,
                _lazyLoaderStub,
                _transactionEventSinkStub,
                _virtualObjectEndPointDataManagerFactoryStub,
                _collectionEndPointDataManagerFactoryStub,
                _collectionEndPointCollectionProviderStub,
                _associatedCollectionStrategyFactoryStub);
        }
        public override void SetUp()
        {
            base.SetUp();

            _endPointID = RelationEndPointID.Create(DomainObjectIDs.Order1, typeof(Order), "OrderTicket");
            _virtualObjectEndPointMock = MockRepository.GenerateStrictMock <IVirtualObjectEndPoint> ();

            _endPointLoaderMock     = MockRepository.GenerateStrictMock <IncompleteVirtualObjectEndPointLoadState.IEndPointLoader> ();
            _dataManagerFactoryStub = MockRepository.GenerateStub <IVirtualObjectEndPointDataManagerFactory> ();

            var dataManagerStub = MockRepository.GenerateStub <IVirtualObjectEndPointDataManager> ();

            dataManagerStub.Stub(stub => stub.HasDataChanged()).Return(false);
            _loadState = new IncompleteVirtualObjectEndPointLoadState(_endPointLoaderMock, _dataManagerFactoryStub);

            _relatedObject       = DomainObjectMother.CreateFakeObject <OrderTicket> ();
            _relatedEndPointStub = MockRepository.GenerateStub <IRealObjectEndPoint> ();
            _relatedEndPointStub.Stub(stub => stub.ObjectID).Return(_relatedObject.ID);

            _relatedObject2       = DomainObjectMother.CreateFakeObject <OrderTicket> ();
            _relatedEndPointStub2 = MockRepository.GenerateStub <IRealObjectEndPoint> ();
            _relatedEndPointStub2.Stub(stub => stub.ObjectID).Return(_relatedObject2.ID);
        }
        public override void SetUp()
        {
            base.SetUp();

            _endPointID = RelationEndPointObjectMother.CreateRelationEndPointID(DomainObjectIDs.Order1, "OrderTicket");

            _lazyLoaderMock           = MockRepository.GenerateStrictMock <ILazyLoader>();
            _endPointProviderStub     = MockRepository.GenerateStub <IRelationEndPointProvider> ();
            _transactionEventSinkStub = MockRepository.GenerateStub <IClientTransactionEventSink>();
            _dataManagerFactory       = new VirtualObjectEndPointDataManagerFactory();
            _loadStateMock            = MockRepository.GenerateStrictMock <IVirtualObjectEndPointLoadState> ();

            _endPoint = new VirtualObjectEndPoint(
                ClientTransaction.Current,
                _endPointID,
                _lazyLoaderMock,
                _endPointProviderStub,
                _transactionEventSinkStub,
                _dataManagerFactory);
            PrivateInvoke.SetNonPublicField(_endPoint, "_loadState", _loadStateMock);

            _oppositeEndPointStub = MockRepository.GenerateStub <IRealObjectEndPoint>();
            _oppositeObject       = DomainObjectMother.CreateFakeObject <OrderTicket>();
        }
Пример #9
0
 public IncompleteVirtualObjectEndPointLoadState(FlattenedDeserializationInfo info)
     : base(info)
 {
     _dataManagerFactory = info.GetValueForHandle <IVirtualObjectEndPointDataManagerFactory> ();
 }