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));
        }
Beispiel #2
0
        public override void SetUp()
        {
            base.SetUp();

            _innerFactoryMock = MockRepository.GenerateStrictMock <IRelationEndPointFactory>();
            _listenerStub     = MockRepository.GenerateStub <IVirtualEndPointStateUpdateListener>();

            _decorator           = new StateUpdateRaisingRelationEndPointFactoryDecorator(_innerFactoryMock, _listenerStub);
            _decoratorTestHelper = new DecoratorTestHelper <IRelationEndPointFactory> (_decorator, _innerFactoryMock);
        }
Beispiel #3
0
        public void Serialization()
        {
            var innerFactory = new SerializableRelationEndPointFactoryFake();
            var listener     = new SerializableVirtualEndPointStateUpdateListenerFake();
            var decorator    = new StateUpdateRaisingRelationEndPointFactoryDecorator(innerFactory, listener);

            var deserializedInstance = Serializer.SerializeAndDeserialize(decorator);

            Assert.That(deserializedInstance.InnerFactory, Is.Not.Null);
            Assert.That(deserializedInstance.Listener, Is.Not.Null);
        }