예제 #1
0
        public override void SetUp()
        {
            base.SetUp();

            _storageNameProviderMock                  = MockRepository.GenerateStrictMock <IStorageNameProvider>();
            _storageProviderDefinitionFinderStub      = MockRepository.GenerateStub <IStorageProviderDefinitionFinder>();
            _storageTypeInformationProviderStrictMock = MockRepository.GenerateStrictMock <IStorageTypeInformationProvider> ();

            _factory = new RelationStoragePropertyDefinitionFactory(TestDomainStorageProviderDefinition,
                                                                    false, _storageNameProviderMock, _storageTypeInformationProviderStrictMock, _storageProviderDefinitionFinderStub);

            _fakeStorageTypeInformation1 = StorageTypeInformationObjectMother.CreateStorageTypeInformation();
            _fakeStorageTypeInformation2 = StorageTypeInformationObjectMother.CreateStorageTypeInformation();
        }
예제 #2
0
        public void CreateStoragePropertyDefinition_RelationToClassDefinitionWithoutHierarchy_WithForceClassIDTrue()
        {
            var endPointDefinition = GetNonVirtualEndPointDefinition(typeof(ClassWithManySideRelationProperties), "BidirectionalOneToOne");

            Assert.That(endPointDefinition.GetOppositeEndPointDefinition().ClassDefinition.IsPartOfInheritanceHierarchy, Is.False);

            _storageTypeInformationProviderStrictMock
            .Expect(mock => mock.GetStorageTypeForID(true))
            .Return(_fakeStorageTypeInformation1);
            _storageTypeInformationProviderStrictMock
            .Expect(mock => mock.GetStorageTypeForClassID(true))
            .Return(_fakeStorageTypeInformation2);

            _storageNameProviderMock
            .Expect(mock => mock.GetRelationColumnName(endPointDefinition))
            .Return("FakeRelationColumnName");
            _storageNameProviderMock
            .Expect(mock => mock.GetRelationClassIDColumnName(endPointDefinition))
            .Return("FakeRelationClassIDColumnName");

            _storageProviderDefinitionFinderStub
            .Stub(stub => stub.GetStorageProviderDefinition(endPointDefinition.GetOppositeEndPointDefinition().ClassDefinition, null))
            .Return(_factory.StorageProviderDefinition);

            var factoryForcingClassID = new RelationStoragePropertyDefinitionFactory(TestDomainStorageProviderDefinition,
                                                                                     true, _storageNameProviderMock, _storageTypeInformationProviderStrictMock, _storageProviderDefinitionFinderStub);
            var result = factoryForcingClassID.CreateStoragePropertyDefinition(endPointDefinition);

            _storageTypeInformationProviderStrictMock.VerifyAllExpectations();
            _storageNameProviderMock.VerifyAllExpectations();
            CheckForeignKeyObjectIDStorageProperty(
                result,
                "FakeRelationColumnName",
                _fakeStorageTypeInformation1,
                "FakeRelationClassIDColumnName",
                _fakeStorageTypeInformation2);
        }