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

            _owningOrder = DomainObjectIDs.Order1.GetObject <Order> ();
            _endPointID  = RelationEndPointID.Resolve(_owningOrder, o => o.OrderItems);

            _collectionEndPointMock = MockRepository.GenerateStrictMock <ICollectionEndPoint>();
            StubCollectionEndPoint(_collectionEndPointMock, TestableClientTransaction, _owningOrder);
            _virtualEndPointProviderStub = MockRepository.GenerateStub <IVirtualEndPointProvider> ();
            _virtualEndPointProviderStub
            .Stub(stub => stub.GetOrCreateVirtualEndPoint(_endPointID))
            .Return(_collectionEndPointMock);

            _endPointDataStub      = MockRepository.GenerateStub <IDomainObjectCollectionData>();
            _endPointDataDecorator = new ReadOnlyCollectionDataDecorator(_endPointDataStub);

            _commandStub       = MockRepository.GenerateStub <IDataManagementCommand>();
            _nestedCommandMock = MockRepository.GenerateMock <IDataManagementCommand> ();
            _nestedCommandMock.Stub(stub => stub.GetAllExceptions()).Return(new Exception[0]);
            _expandedCommandFake = new ExpandedCommand(_nestedCommandMock);

            _delegatingData = new EndPointDelegatingCollectionData(_endPointID, _virtualEndPointProviderStub);

            _orderItem1 = DomainObjectIDs.OrderItem1.GetObject <OrderItem>();
            _orderItem2 = DomainObjectIDs.OrderItem2.GetObject <OrderItem>();

            ClientTransactionScope.EnterNullScope(); // no active transaction
        }
        private void CheckOwningObjectDeletedException(Action <EndPointDelegatingCollectionData, DomainObject> action)
        {
            Order deletedOwningObject;

            using (_delegatingData.GetAssociatedEndPoint().ClientTransaction.EnterNonDiscardingScope())
            {
                deletedOwningObject = DomainObjectIDs.Order5.GetObject <Order> ();
            }

            var endPointStub = CreateCollectionEndPointStub(TestableClientTransaction, deletedOwningObject);
            var virtualEndPointProviderStub = MockRepository.GenerateStub <IVirtualEndPointProvider> ();

            virtualEndPointProviderStub.Stub(stub => stub.GetOrCreateVirtualEndPoint(_endPointID)).Return(endPointStub);
            var data = new EndPointDelegatingCollectionData(_endPointID, virtualEndPointProviderStub);

            using (_delegatingData.GetAssociatedEndPoint().ClientTransaction.EnterNonDiscardingScope())
            {
                deletedOwningObject.Delete();
            }

            try
            {
                action(data, _orderItem1);
                Assert.Fail("Expected ObjectDeletedException");
            }
            catch (ObjectDeletedException)
            {
                // ok
            }
        }
        public void Serializable()
        {
            var data = new EndPointDelegatingCollectionData(_endPointID, new SerializableRelationEndPointProviderFake());

            var deserializedInstance = Serializer.SerializeAndDeserialize(data);

            Assert.That(deserializedInstance.AssociatedEndPointID, Is.EqualTo(_endPointID));
            Assert.That(deserializedInstance.VirtualEndPointProvider, Is.Not.Null);
        }
Example #4
0
        private OrderCollection CreateAssociatedCollectionWithEndPointStub()
        {
            var collectionEndPointStub = MockRepository.GenerateStub <ICollectionEndPoint> ();
            var endPointDataStub       = new ReadOnlyCollectionDataDecorator(new DomainObjectCollectionData());

            collectionEndPointStub.Stub(stub => stub.GetData()).Return(endPointDataStub);

            var virtualEndPointProviderStub = MockRepository.GenerateStub <IVirtualEndPointProvider>();
            var endPointID = RelationEndPointID.Create(DomainObjectIDs.Customer1, typeof(Customer), "Orders");

            virtualEndPointProviderStub.Stub(stub => stub.GetOrCreateVirtualEndPoint(endPointID)).Return(collectionEndPointStub);

            var delegatingStrategy   = new EndPointDelegatingCollectionData(endPointID, virtualEndPointProviderStub);
            var associatedCollection = new OrderCollection(new ModificationCheckingCollectionDataDecorator(typeof(Order), delegatingStrategy));

            Assert.That(DomainObjectCollectionDataTestHelper.GetAssociatedEndPoint(associatedCollection), Is.SameAs(collectionEndPointStub));
            return(associatedCollection);
        }