protected override IObjectLoader CreateObjectLoader(
            ClientTransaction constructedTransaction,
            IClientTransactionEventSink eventSink,
            IPersistenceStrategy persistenceStrategy,
            IInvalidDomainObjectManager invalidDomainObjectManager,
            IDataManager dataManager,
            ITransactionHierarchyManager hierarchyManager)
        {
            ArgumentUtility.CheckNotNull("constructedTransaction", constructedTransaction);
            ArgumentUtility.CheckNotNull("eventSink", eventSink);
            var fetchEnabledPersistenceStrategy =
                ArgumentUtility.CheckNotNullAndType <IFetchEnabledPersistenceStrategy> ("persistenceStrategy", persistenceStrategy);

            ArgumentUtility.CheckNotNull("invalidDomainObjectManager", invalidDomainObjectManager);
            ArgumentUtility.CheckNotNull("dataManager", dataManager);
            ArgumentUtility.CheckNotNull("hierarchyManager", hierarchyManager);

            var loadedObjectDataProvider          = new LoadedObjectDataProvider(dataManager, invalidDomainObjectManager);
            var registrationListener              = new LoadedObjectDataRegistrationListener(eventSink, hierarchyManager);
            var loadedObjectDataRegistrationAgent = new LoadedObjectDataRegistrationAgent(constructedTransaction, dataManager, registrationListener);

            IFetchedRelationDataRegistrationAgent registrationAgent =
                new DelegatingFetchedRelationDataRegistrationAgent(
                    new FetchedRealObjectRelationDataRegistrationAgent(),
                    new FetchedVirtualObjectRelationDataRegistrationAgent(dataManager),
                    new FetchedCollectionRelationDataRegistrationAgent(dataManager));
            var eagerFetcher = new EagerFetcher(registrationAgent);

            return(new FetchEnabledObjectLoader(
                       fetchEnabledPersistenceStrategy,
                       loadedObjectDataRegistrationAgent,
                       loadedObjectDataProvider,
                       eagerFetcher));
        }
Example #2
0
        public override void SetUp()
        {
            base.SetUp();

            _clientTransaction = ClientTransactionObjectMother.Create();

            _mockRepository           = new MockRepository();
            _dataManagerMock          = _mockRepository.StrictMock <IDataManager> ();
            _registrationListenerMock = _mockRepository.StrictMock <ILoadedObjectDataRegistrationListener> ();

            _agent = new LoadedObjectDataRegistrationAgent(_clientTransaction, _dataManagerMock, _registrationListenerMock);
        }
Example #3
0
        public void Serializable()
        {
            var clientTransaction = ClientTransaction.CreateRootTransaction();
            var agent             = new LoadedObjectDataRegistrationAgent(
                clientTransaction,
                new SerializableDataManagerFake(),
                new SerializableLoadedObjectDataRegistrationListenerFake());

            var deserializedInstance = Serializer.SerializeAndDeserialize(agent);

            Assert.That(deserializedInstance.ClientTransaction, Is.Not.Null);
            Assert.That(deserializedInstance.DataManager, Is.Not.Null);
            Assert.That(deserializedInstance.RegistrationListener, Is.Not.Null);
        }
Example #4
0
        protected virtual IObjectLoader CreateBasicObjectLoader(
            ClientTransaction constructedTransaction,
            IClientTransactionEventSink eventSink,
            IPersistenceStrategy persistenceStrategy,
            IInvalidDomainObjectManager invalidDomainObjectManager,
            IDataManager dataManager,
            ITransactionHierarchyManager hierarchyManager)
        {
            ArgumentUtility.CheckNotNull("constructedTransaction", constructedTransaction);
            ArgumentUtility.CheckNotNull("eventSink", eventSink);
            ArgumentUtility.CheckNotNull("persistenceStrategy", persistenceStrategy);
            ArgumentUtility.CheckNotNull("invalidDomainObjectManager", invalidDomainObjectManager);
            ArgumentUtility.CheckNotNull("dataManager", dataManager);
            ArgumentUtility.CheckNotNull("hierarchyManager", hierarchyManager);

            var loadedObjectDataProvider          = new LoadedObjectDataProvider(dataManager, invalidDomainObjectManager);
            var registrationListener              = new LoadedObjectDataRegistrationListener(eventSink, hierarchyManager);
            var loadedObjectDataRegistrationAgent = new LoadedObjectDataRegistrationAgent(constructedTransaction, dataManager, registrationListener);

            return(new ObjectLoader(
                       persistenceStrategy,
                       loadedObjectDataRegistrationAgent,
                       loadedObjectDataProvider));
        }