public override void SetUp()
        {
            base.SetUp();

            _virtualEndPointProviderStub = MockRepository.GenerateStub <IVirtualEndPointProvider>();
            _factory = new AssociatedCollectionDataStrategyFactory(_virtualEndPointProviderStub);
        }
        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));
        }
        public static CollectionEndPoint CreateCollectionEndPoint(
            RelationEndPointID endPointID,
            IEnumerable <DomainObject> initialContents,
            ClientTransaction clientTransaction = null)
        {
            clientTransaction = clientTransaction ?? ClientTransactionScope.CurrentTransaction;
            var dataManager             = ClientTransactionTestHelper.GetDataManager(clientTransaction);
            var changeDetectionStrategy = new RootCollectionEndPointChangeDetectionStrategy();
            var dataStrategyFactory     = new AssociatedCollectionDataStrategyFactory(dataManager);
            var collectionEndPoint      = new CollectionEndPoint(
                clientTransaction,
                endPointID,
                new CollectionEndPointCollectionManager(endPointID, new CollectionEndPointCollectionProvider(dataStrategyFactory), dataStrategyFactory),
                dataManager,
                dataManager,
                ClientTransactionTestHelper.GetEventBroker(clientTransaction),
                new CollectionEndPointDataManagerFactory(changeDetectionStrategy));

            if (initialContents != null)
            {
                CollectionEndPointTestHelper.FillCollectionEndPointWithInitialContents(collectionEndPoint, initialContents);
            }

            return(collectionEndPoint);
        }
Esempio n. 4
0
        public void TransformToAssociated()
        {
            var endPointID = RelationEndPointID.Create(DomainObjectIDs.Customer1, typeof(Customer), "Orders");
            var originalCollectionDataStrategy = DomainObjectCollectionDataTestHelper.GetDataStrategy(_collection);
            var originalCollectionContents     = _collection.Cast <DomainObject> ().ToArray();
            var originalEndPointContents       =
                ((ICollectionEndPoint)TestableClientTransaction.DataManager.GetRelationEndPointWithLazyLoad(endPointID)).GetData().ToArray();
            var associatedCollectionDataStrategyFactory = new AssociatedCollectionDataStrategyFactory(TestableClientTransaction.DataManager);

            var result = ((IAssociatableDomainObjectCollection)_collection).TransformToAssociated(endPointID, associatedCollectionDataStrategyFactory);

            DomainObjectCollectionDataTestHelper.CheckAssociatedCollectionStrategy(_collection, typeof(Order), endPointID);
            Assert.That(result, Is.SameAs(originalCollectionDataStrategy));
            Assert.That(result, Is.EqualTo(originalCollectionContents));
            Assert.That(_collection, Is.EqualTo(originalEndPointContents));
        }