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)); }