Пример #1
0
        public AnyMapper(MemberInfo member, System.Type foreignIdType, IAccessorPropertyMapper accessorMapper, HbmAny any, HbmMapping mapDoc)
        {
            this.member        = member;
            this.foreignIdType = foreignIdType;
            this.any           = any;
            this.mapDoc        = mapDoc;
            if (member == null)
            {
                this.any.access = "none";
            }
            entityPropertyMapper = member == null ? new NoMemberPropertyMapper() : accessorMapper;
            if (foreignIdType == null)
            {
                throw new ArgumentNullException("foreignIdType");
            }
            if (any == null)
            {
                throw new ArgumentNullException("any");
            }

            this.any.idtype = this.foreignIdType.GetNhTypeName();
            var    idHbmColumn  = new HbmColumn();
            string idColumnName = member == null ? DefaultIdColumnNameWhenNoProperty : member.Name + "Id";

            idColumnMapper = new ColumnMapper(idHbmColumn, idColumnName);
            var    classHbmColumn  = new HbmColumn();
            string classColumnName = member == null ? DefaultMetaColumnNameWhenNoProperty : member.Name + "Class";

            classColumnMapper = new ColumnMapper(classHbmColumn, classColumnName);
            any.column        = new[] { classHbmColumn, idHbmColumn };
        }
Пример #2
0
        public void WhenSetMetaValueWithClassThenThrow()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            Executing.This(() => mapper.MetaValue(typeof(MyReferenceClass), typeof(MyReferenceClass))).Should().Throw <ArgumentOutOfRangeException>();
        }
Пример #3
0
        public void WhenSetMetaValueWithClassThenThrow()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            Assert.That(() => mapper.MetaValue(typeof(MyReferenceClass), typeof(MyReferenceClass)), Throws.TypeOf <ArgumentOutOfRangeException>());
        }
        public void AtCreationSetIdType()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();

            new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
            hbmAny.idtype.Should().Be("Int32");
        }
Пример #5
0
        public void AtCreationSetIdType()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();

            new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
            Assert.That(hbmAny.idtype, Is.EqualTo("Int32"));
        }
Пример #6
0
        public void CanSetLazy()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Lazy(true);
            Assert.That(hbmAny.lazy, Is.EqualTo(true));
        }
Пример #7
0
        public void CanSetIndex()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Index("pizza");
            Assert.That(hbmAny.index, Is.EqualTo("pizza"));
        }
        public void CanSetIndex()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Index("pizza");
            hbmAny.index.Should().Be("pizza");
        }
        public void WhenSetFirstMetaValueThenSetMetaTypeIfNotClass()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaValue('A', typeof(MyReferenceClass));
            hbmAny.MetaType.Should().Be("Char");
        }
Пример #10
0
        public void CanSetUpdate()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Update(false);
            Assert.That(hbmAny.update, Is.False);
        }
Пример #11
0
        public void WhenDuplicatedMetaValueWithDifferentTypeThenThrow()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaValue('A', typeof(MyReferenceClass));
            Assert.That(() => mapper.MetaValue('A', typeof(MyClass)), Throws.TypeOf <ArgumentException>());
        }
        public void CanSetMetaTypeThroughGenericMethod()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaType <char>();
            hbmAny.MetaType.Should().Be("Char");
        }
        public void CanSetMetaTypeThroughIType()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaType(NHibernateUtil.Character);
            hbmAny.MetaType.Should().Be("Char");
        }
        public void CanSetIdTypeThroughType()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.IdType(typeof(long));
            hbmAny.idtype.Should().Be("Int64");
        }
        public void AtCreationSetTheTwoRequiredColumnsNodes()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();

            new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
            hbmAny.Columns.Should().Have.Count.EqualTo(2);
            hbmAny.Columns.Select(c => c.name).All(n => n.Satisfy(name => !string.IsNullOrEmpty(name)));
        }
        public void CanSetInsert()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Insert(false);
            hbmAny.insert.Should().Be.False();
        }
        public void CanSetUpdate()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Update(false);
            hbmAny.update.Should().Be.False();
        }
Пример #18
0
        public void WhenNullParameterThenThrow()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            Assert.That(() => mapper.MetaValue(null, typeof(MyReferenceClass)), Throws.TypeOf <ArgumentNullException>());
            Assert.That(() => mapper.MetaValue('A', null), Throws.TypeOf <ArgumentNullException>());
        }
Пример #19
0
        public void WhenSetFirstMetaValueThenSetMetaTypeIfNotClass()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaValue('A', typeof(MyReferenceClass));
            Assert.That(hbmAny.MetaType, Is.EqualTo("Char"));
        }
        public void Any(MemberInfo property, System.Type idTypeOfMetaType, Action <IAnyMapper> mapping)
        {
            var hbm = new HbmAny {
                name = property.Name
            };

            mapping(new AnyMapper(property, idTypeOfMetaType, new NoMemberPropertyMapper(), hbm, MapDoc));
            AddProperty(hbm);
        }
Пример #21
0
        public void WhenSetSecondMetaValueThenCheckCompatibility()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaValue('A', typeof(MyReferenceClass));
            Assert.That(() => mapper.MetaValue(5, typeof(MyClass)), Throws.TypeOf <ArgumentException>());
        }
Пример #22
0
        protected void BindAny(HbmAny node, Any model, bool isNullable)
        {
            model.IdentifierTypeName = node.idtype;
            new TypeBinder(model, Mappings).Bind(node.idtype);

            BindAnyMeta(node, model);

            new ColumnsBinder(model, Mappings).Bind(node.Columns, isNullable, null);
        }
Пример #23
0
        public void AtCreationSetTheTwoRequiredColumnsNodes()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();

            new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
            Assert.That(hbmAny.Columns.Count(), Is.EqualTo(2));
            Assert.That(hbmAny.Columns.All(c => !string.IsNullOrEmpty(c.name)), Is.True);
        }
Пример #24
0
        public void CanSetMetaTypeThroughIType()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaType(NHibernateUtil.Character);
            Assert.That(hbmAny.MetaType, Is.EqualTo("Char"));
        }
Пример #25
0
        public void CanSetInsert()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Insert(false);
            Assert.That(hbmAny.insert, Is.False);
        }
        public void CanSetLazy()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Lazy(true);
            hbmAny.lazy.Should().Be(true);
        }
Пример #27
0
        public void CanSetIdTypeThroughType()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.IdType(typeof(long));
            Assert.That(hbmAny.idtype, Is.EqualTo("Int64"));
        }
Пример #28
0
        public void CanSetCascade()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Cascade(Mapping.ByCode.Cascade.All);
            Assert.That(hbmAny.cascade, Is.EqualTo("all"));
        }
Пример #29
0
        public void CanSetMetaTypeThroughGenericMethod()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.MetaType <char>();
            Assert.That(hbmAny.MetaType, Is.EqualTo("Char"));
        }
Пример #30
0
        public void AutoCleanInvalidCascade()
        {
            var hbmMapping = new HbmMapping();
            var hbmAny     = new HbmAny();
            var mapper     = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

            mapper.Cascade(Mapping.ByCode.Cascade.All | Mapping.ByCode.Cascade.DeleteOrphans);
            Assert.That(hbmAny.cascade, Is.EqualTo("all"));
        }