コード例 #1
0
        public void HandleNonSubclassableType_UnsubclassableDomainObject()
        {
            var nonAbstractClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(isAbstract: false);

            _typeDefinitionProviderMock.Stub(stub => stub.GetTypeDefinition(typeof(NonSubclassableDomainObject))).Return(nonAbstractClassDefinition);
            _participant.HandleNonSubclassableType(typeof(NonSubclassableDomainObject));
        }
コード例 #2
0
        public void PropertyValue_WithReferenceType_NotAllowed()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition("ClassName");
            PropertyDefinition propertyDefinition = PropertyDefinitionObjectMother.CreateForFakePropertyInfo(classDefinition, "test", typeof(List <object>));

            new PropertyValue(propertyDefinition, null);
        }
コード例 #3
0
        private void StubGetPropertyInterceptors(params IAccessorInterceptor[] accessorInterceptors)
        {
            var fakeClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition();

            _typeDefinitionProviderMock.Stub(stub => stub.GetTypeDefinition(Arg <Type> .Is.Anything)).Return(fakeClassDefinition);
            _interceptedPropertyFinderMock.Stub(stub => stub.GetPropertyInterceptors(null, null)).IgnoreArguments().Return(accessorInterceptors);
        }
コード例 #4
0
        public override void SetUp()
        {
            base.SetUp();

            _classType       = typeof(ClassWithRealRelationEndPoints);
            _classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: _classType);
        }
コード例 #5
0
        public void ClassWithoutBaseClass()
        {
            var classDefinition  = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(BaseOfBaseValidationDomainObjectClass), storageGroupType: typeof(DBStorageGroupAttribute));
            var validationResult = _validationRule.Validate(classDefinition);

            AssertMappingValidationResult(validationResult, true, null);
        }
コード例 #6
0
        private ClassDefinition CreateClassDefinition(IStorageEntityDefinition entityDefinition)
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Order), baseClass: null);

            classDefinition.SetStorageEntity(entityDefinition);
            return(classDefinition);
        }
コード例 #7
0
        public override void SetUp()
        {
            base.SetUp();

            _provider        = new RdbmsPersistenceModelProvider();
            _classDefinition = ClassDefinitionObjectMother.CreateClassDefinition("Order", typeof(Order));
        }
コード例 #8
0
        public void HandleNonSubclassableType_AbstractDomainObject()
        {
            var abstractClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(isAbstract: true);

            _typeDefinitionProviderMock.Stub(stub => stub.GetTypeDefinition(_proxyTypeAssemblyContext.RequestedType)).Return(abstractClassDefinition);
            Assert.That(() => _participant.HandleNonSubclassableType(_proxyTypeAssemblyContext.RequestedType), Throws.Nothing);
        }
 public void SetUp()
 {
     _validtionRule   = new MappingAttributesAreSupportedForPropertyTypeValidationRule();
     _validType       = typeof(ClassWithValidPropertyAttributes);
     _invalidType     = typeof(ClassWithInvalidPropertyAttributes);
     _classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: _validType);
 }
 public void SetUp()
 {
     _validationRule          = new RelationEndPointTypesAreConsistentValidationRule();
     _baseClassDefinition1    = ClassDefinitionObjectMother.CreateClassDefinition("BaseRelationEndPointPropertyClass1", typeof(BaseRelationEndPointPropertyClass1));
     _baseClassDefinition2    = ClassDefinitionObjectMother.CreateClassDefinition("BaseRelationEndPointPropertyClass2", typeof(BaseRelationEndPointPropertyClass2));
     _derivedClassDefinition1 = ClassDefinitionObjectMother.CreateClassDefinition("DerivedRelationEndPointPropertyClass1", typeof(DerivedRelationEndPointPropertyClass1), baseClass: _baseClassDefinition1);
     _derivedClassDefinition2 = ClassDefinitionObjectMother.CreateClassDefinition("DerivedRelationEndPointPropertyClass2", typeof(DerivedRelationEndPointPropertyClass2), baseClass: _baseClassDefinition2);
 }
コード例 #11
0
        public void GetEntityDefinition_WrongEntityDefinition()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition("Order", typeof(Order));

            classDefinition.SetStorageEntity(new FakeStorageEntityDefinition(TestDomainStorageProviderDefinition, "Test"));

            _provider.GetEntityDefinition(classDefinition);
        }
コード例 #12
0
        public void GetTableName_ClassHasDBTableAttributeWithtName_ReturnsAttributeName()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(ClassHavingStorageSpecificIdentifierAttribute), baseClass: null);

            var result = _provider.GetTableName(classDefinition).EntityName;

            Assert.That(result, Is.EqualTo("ClassHavingStorageSpecificIdentifierAttributeTable"));
        }
コード例 #13
0
        public void GetTableName_ClassHasNoDBTableAttribute_ReturnsNull()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Folder), baseClass: null);

            var result = _provider.GetTableName(classDefinition);

            Assert.That(result, Is.Null);
        }
コード例 #14
0
        private ObjectID CreateObjectID(IStorageEntityDefinition entityDefinition)
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Order), baseClass: null);

            classDefinition.SetStorageEntity(entityDefinition);

            return(new ObjectID(classDefinition, Guid.NewGuid()));
        }
コード例 #15
0
        public void GetEntityDefinition_EmptyViewDefinition()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition("Order", classType: typeof(Order), baseClass: null);

            Assert.That(classDefinition.StorageEntityDefinition, Is.Null);

            _provider.GetEntityDefinition(classDefinition);
        }
コード例 #16
0
        public void ClassWithBaseClass_ClassesWithoutStorageGroupAttribute()
        {
            var baseClassDefinition    = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(BaseOfBaseValidationDomainObjectClass), storageGroupType: null);
            var derivedClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(BaseOfBaseValidationDomainObjectClass), baseClass: baseClassDefinition, storageGroupType: null);

            var validationResult = _validationRule.Validate(derivedClassDefinition);

            AssertMappingValidationResult(validationResult, true, null);
        }
コード例 #17
0
        public void OriginalPropertyDeclaration()
        {
            var type            = typeof(BaseMappingAttributesClass);
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: type);

            var validationResult = _validationRule.Validate(classDefinition).First();

            AssertMappingValidationResult(validationResult, true, null);
        }
コード例 #18
0
        public void GetRelationClassIDColumnName()
        {
            var classDefinition    = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(FileSystemItem), baseClass: null);
            var propertyDefinition = PropertyDefinitionObjectMother.CreateForRealPropertyInfo(classDefinition, typeof(FileSystemItem), "ParentFolder");
            var relationDefinition = new RelationEndPointDefinition(propertyDefinition, true);

            var result = _provider.GetRelationClassIDColumnName(relationDefinition);

            Assert.That(result, Is.EqualTo("ParentFolderIDClassID"));
        }
コード例 #19
0
        public void Participate_AbstractDomainObject()
        {
            var abstractClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(isAbstract: true);

            _typeDefinitionProviderMock.Stub(stub => stub.GetTypeDefinition(_proxyTypeAssemblyContext.RequestedType)).Return(abstractClassDefinition);

            _participant.Participate(null, _proxyTypeAssemblyContext);

            Assert.That(_proxyType.AddedInterfaces, Has.No.Member(typeof(IInterceptedDomainObject)));
        }
コード例 #20
0
        public void ClassDefinitionTypeIsNoSubClassOfDomainObject()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition("String", typeof(string));

            var validationResult = _validationRule.Validate(classDefinition);

            var expectedMessage = "Type 'String' of class 'String' is not assignable to 'DomainObject'.\r\n\r\nDeclaring type: System.String";

            AssertMappingValidationResult(validationResult, false, expectedMessage);
        }
        public void SetUp()
        {
            _validationRule          = new ClassAboveTableIsAbstractValidationRule();
            _abstractClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(DerivedValidationDomainObjectClass), isAbstract: true);
            _concreteClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(DerivedValidationDomainObjectClass), isAbstract: false);
            var storageProviderDefinition = new UnitTestStorageProviderStubDefinition("DefaultStorageProvider");

            _tableDefinition     = TableDefinitionObjectMother.Create(storageProviderDefinition, new EntityNameDefinition(null, "TableName"));
            _unionViewDefinition = UnionViewDefinitionObjectMother.Create(storageProviderDefinition);
            _emptyViewDefinition = EmptyViewDefinitionObjectMother.Create(storageProviderDefinition);
        }
コード例 #22
0
        public void ClassDefinitionWithBaseClass_ClassTypeIsDerivedFromBaseClassType()
        {
            var baseType            = typeof(BaseOfBaseValidationDomainObjectClass);
            var baseClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: baseType);
            var derivedType         = typeof(BaseValidationDomainObjectClass);
            var classDefinition     = ClassDefinitionObjectMother.CreateClassDefinition(classType: derivedType, baseClass: baseClassDefinition);

            var validationResult = _validationRule.Validate(classDefinition);

            AssertMappingValidationResult(validationResult, true, null);
        }
コード例 #23
0
        public void GetColumnName_PropertyWithIStorageSpecificIdentifierAttribute_ReturnsNameFromAttribute()
        {
            var classWithAllDataTypesDefinition =
                ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(ClassWithAllDataTypes), baseClass: null);
            var propertyDefinition = PropertyDefinitionObjectMother.CreateForRealPropertyInfo(
                classWithAllDataTypesDefinition, typeof(ClassWithAllDataTypes), "BooleanProperty");

            var result = _provider.GetColumnName(propertyDefinition);

            Assert.That(result, Is.EqualTo("Boolean"));
        }
コード例 #24
0
        public void GetStorageProviderDefinition_NoStorageEntity()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Order), baseClass: null);

            Assert.That(
                () => _finder.GetStorageProviderDefinition(classDefinition, null),
                Throws.InvalidOperationException.With.Message.EqualTo("Cannot obtain storage provider for ClassDefinitions without storage entities. "));
            Assert.That(
                () => _finder.GetStorageProviderDefinition(classDefinition, "Context"),
                Throws.InvalidOperationException.With.Message.EqualTo("Cannot obtain storage provider for ClassDefinitions without storage entities. Context"));
        }
コード例 #25
0
        public void GetRelationColumnName_PropertyWithIStorageSpecificIdentifierAttribute_ReturnsNameFromAttribute()
        {
            var classDefinition =
                ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(FileSystemItem), baseClass: null);
            var propertyDefinition = PropertyDefinitionObjectMother.CreateForRealPropertyInfo(classDefinition, typeof(FileSystemItem), "ParentFolder2");
            var relationDefinition = new RelationEndPointDefinition(propertyDefinition, true);

            var result = _provider.GetRelationColumnName(relationDefinition);

            Assert.That(result, Is.EqualTo("ParentFolderRelation"));
        }
コード例 #26
0
        public void GetColumnName_PropertyWithoutIStorageSpecificIdentifierAttribute_ReturnsPropertyName()
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Distributor), baseClass: null);

            classDefinition.SetRelationEndPointDefinitions(new RelationEndPointDefinitionCollection());
            var propertyDefinition = PropertyDefinitionObjectMother.CreateForRealPropertyInfo(classDefinition, typeof(Distributor), "NumberOfShops");

            var result = _provider.GetColumnName(propertyDefinition);

            Assert.That(result, Is.EqualTo("NumberOfShops"));
        }
コード例 #27
0
        public void GetStoragePropertiesForHierarchy_NonPersistentPropertiesAreFiltered()
        {
            var classDefinition       = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Order), baseClass: null);
            var nonPersistentProperty = PropertyDefinitionObjectMother.CreateForFakePropertyInfo(classDefinition, "NonPersistentProperty", StorageClass.None);

            classDefinition.SetPropertyDefinitions(new PropertyDefinitionCollection(new[] { nonPersistentProperty }, true));
            classDefinition.SetDerivedClasses(new ClassDefinition[0]);

            var properties = _resolver.GetStoragePropertiesForHierarchy(classDefinition).ToArray();

            Assert.That(properties, Is.Empty);
        }
コード例 #28
0
        public void SetUp()
        {
            _validationRule    = new ColumnNamesAreUniqueWithinInheritanceTreeValidationRule(new RdbmsPersistenceModelProvider());
            _baseOfBaseClass   = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(BaseOfBaseValidationDomainObjectClass));
            _derivedBaseClass1 = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(BaseValidationDomainObjectClass), baseClass: _baseOfBaseClass);
            _derivedBaseClass2 = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(DerivedValidationDomainObjectClass), baseClass: _derivedBaseClass1);
            _derivedClass      = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(OtherDerivedValidationHierarchyClass), baseClass: _baseOfBaseClass);

            _baseOfBaseClass.SetDerivedClasses(new[] { _derivedBaseClass1, _derivedClass });
            _derivedBaseClass1.SetDerivedClasses(new[] { _derivedBaseClass2 });
            _derivedBaseClass2.SetDerivedClasses(new ClassDefinition[0]);
            _derivedClass.SetDerivedClasses(new ClassDefinition[0]);
        }
        private PropertyDefinition CreatePropertyDefinition(Type propertyType, bool isNullable, int?maxLength = null)
        {
            var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition();

            return(PropertyDefinitionObjectMother.CreateForFakePropertyInfo(
                       classDefinition,
                       "Name",
                       false,
                       propertyType,
                       isNullable,
                       maxLength,
                       StorageClass.Persistent));
        }
コード例 #30
0
        public void SetUp()
        {
            _classDefinition1 = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(DerivedValidationDomainObjectClass));
            _classDefinition2 = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(DerivedValidationDomainObjectClass));
            _classDefinition3 = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(DerivedValidationDomainObjectClass));

            _validationRuleMock1 = MockRepository.GenerateStrictMock <IClassDefinitionValidationRule> ();
            _validationRuleMock2 = MockRepository.GenerateStrictMock <IClassDefinitionValidationRule> ();
            _validationRuleMock3 = MockRepository.GenerateStrictMock <IClassDefinitionValidationRule> ();

            _fakeValidMappingValidationResult   = MappingValidationResult.CreateValidResult();
            _fakeInvalidMappingValidationResult = MappingValidationResult.CreateInvalidResult("Test");
        }