コード例 #1
0
        public void CreateUnregisterCommandForDataContainer_Existing_IncludesRealObjectEndPoints_IgnoresVirtualEndPoints()
        {
            var realEndPointID = RelationEndPointObjectMother.CreateRelationEndPointID(DomainObjectIDs.Order1, "Customer");
            var dataContainer  = RelationEndPointTestHelper.CreateExistingForeignKeyDataContainer(realEndPointID, DomainObjectIDs.Order3);

            _relationEndPointManager.RegisterEndPointsForDataContainer(dataContainer);
            var realEndPoint = _relationEndPointManager.RelationEndPoints[realEndPointID];

            var virtualObjectEndPointID   = RelationEndPointObjectMother.CreateRelationEndPointID(DomainObjectIDs.Order1, "OrderItems");
            var virtualObjectEndPointStub = MockRepository.GenerateStub <IVirtualObjectEndPoint> ();

            virtualObjectEndPointStub.Stub(stub => stub.ID).Return(virtualObjectEndPointID);
            RelationEndPointManagerTestHelper.AddEndPoint(_relationEndPointManager, virtualObjectEndPointStub);

            var collectionEndPointID   = RelationEndPointObjectMother.CreateRelationEndPointID(DomainObjectIDs.Order1, "OrderTicket");
            var collectionEndPointStub = MockRepository.GenerateStub <ICollectionEndPoint> ();

            collectionEndPointStub.Stub(stub => stub.ID).Return(collectionEndPointID);
            RelationEndPointManagerTestHelper.AddEndPoint(_relationEndPointManager, collectionEndPointStub);

            var command = _relationEndPointManager.CreateUnregisterCommandForDataContainer(dataContainer);

            Assert.That(command, Is.TypeOf <UnregisterEndPointsCommand> ());
            Assert.That(((UnregisterEndPointsCommand)command).RegistrationAgent, Is.SameAs(_relationEndPointManager.RegistrationAgent));
            Assert.That(((UnregisterEndPointsCommand)command).Map, Is.SameAs(_relationEndPointManager.RelationEndPoints));
            Assert.That(((UnregisterEndPointsCommand)command).EndPoints, Has.Member(realEndPoint));
            Assert.That(((UnregisterEndPointsCommand)command).EndPoints, Has.No.Member(virtualObjectEndPointStub));
            Assert.That(((UnregisterEndPointsCommand)command).EndPoints, Has.No.Member(collectionEndPointStub));
        }