Exemplo n.º 1
0
        public void WhenCreatedThenAutoAssignType()
        {
            var elementMapping = new HbmElement();
            var mapper         = new ElementMapper(typeof(string), elementMapping);

            elementMapping.type1.Should().Be("String");
        }
        public void BindSimpleValue(HbmElement element, string propertyPath, bool isNullable)
        {
            new TypeBinder(value, Mappings).Bind(element.Type);
            var formulas = element.Formulas.ToArray();

            if (formulas.Length > 0)
            {
                BindFormulas(formulas);
            }
            else
            {
                new ColumnsBinder(value, Mappings).Bind(element.Columns, isNullable,
                                                        () =>
                                                        new HbmColumn
                {
                    name             = mappings.NamingStrategy.PropertyToColumnName(propertyPath),
                    length           = element.length,
                    scale            = element.scale,
                    precision        = element.precision,
                    notnull          = element.notnull,
                    notnullSpecified = true,
                    unique           = element.unique,
                    uniqueSpecified  = true,
                });
            }
        }
Exemplo n.º 3
0
        public void Element(Action <IElementMapper> mapping)
        {
            var hbm = new HbmElement();

            mapping(new ElementMapper(collectionElementType, hbm));
            elementRelationshipAssing(hbm);
        }
Exemplo n.º 4
0
        public void CanSetFormula()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
        }
Exemplo n.º 5
0
        public void AfterSetMultiColumnsCantSetSimpleColumn()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)"));
            Executing.This(() => mapper.Column(cm => cm.Length(50))).Should().Throw <MappingException>();
        }
Exemplo n.º 6
0
        public void WhenSetInvalidTypeThenThrow()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            Executing.This(() => mapper.Type(typeof(object), null)).Should().Throw <ArgumentOutOfRangeException>();
            Executing.This(() => mapper.Type(null, null)).Should().Throw <ArgumentNullException>();
        }
Exemplo n.º 7
0
        public void AfterSetMultiColumnsCantSetSimpleColumn()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)"));
            ActionAssert.Throws <ConfOrm.MappingException>(() => mapper.Column(cm => cm.Length(50)));
        }
Exemplo n.º 8
0
        public void WhenCreatedWithEnumThenNoAutoAssignType()
        {
            // Note: the responsibility of the type name is delegated to NHibernate: NHibernateUtil.Enum(typeClass)
            var elementMapping = new HbmElement();

            new ElementMapper(typeof(MyEnum), elementMapping);
            elementMapping.type1.Should().Not.Be.Empty();
        }
Exemplo n.º 9
0
        public void WhenSetInvalidTypeThenThrow()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            ActionAssert.Throws <ArgumentOutOfRangeException>(() => mapper.Type(typeof(object), null));
            ActionAssert.Throws <ArgumentNullException>(() => mapper.Type(null, null));
        }
Exemplo n.º 10
0
        public void SettingColumnOverridesFormula()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Formula("formula");
            mapper.Column(cm => cm.Unique(true));
            mapping.formula.Should().Be.Null();
        }
Exemplo n.º 11
0
        public void WhenSetMultiColumnsValuesThenAutoassignColumnNames()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)"));
            mapping.Columns.Should().Have.Count.EqualTo(2);
            mapping.Columns.All(cm => cm.name.Satisfy(n => !string.IsNullOrEmpty(n)));
        }
        public void WhenSetTypeByICompositeUserTypeThenSetTypeName()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(object), mapping);

            Assert.That(() => mapper.Type <MyCompoType>(), Throws.Nothing);
            Assert.That(mapping.Type.name, Does.Contain(nameof(MyCompoType)));
            Assert.That(mapping.type, Is.Null);
        }
Exemplo n.º 13
0
        public void WhenSetTypeByITypeThenSetTypeName()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Type(NHibernateUtil.Int64);

            mapping.Type.name.Should().Be.EqualTo("Int64");
        }
Exemplo n.º 14
0
        public void WhenSetTypeByNotFormalITypeThenSetTypeFullName()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Type <EnumStringType <MyEnum> >();

            mapping.Type.name.Should().Contain(typeof(EnumStringType <MyEnum>).FullName);
        }
Exemplo n.º 15
0
        public void SettingColumnPlainValuesOverridesFormula()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Formula("formula");
            mapper.Column("colName");
            mapping.formula.Should().Be.Null();
            mapping.column.Should().Be("colName");
        }
Exemplo n.º 16
0
        public void WhenSetColumnNameThenSetTheName()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column(cm => cm.Name("pepe"));

            mapping.Columns.Should().Have.Count.EqualTo(1);
            mapping.Columns.Single().name.Should().Be("pepe");
        }
Exemplo n.º 17
0
        public void WhenSetTypeByIUserTypeWithNullParamsThenSetTypeName()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Type <MyType>(null);

            mapping.Type.name.Should().Contain("MyType");
            mapping.type.Should().Be.Null();
        }
Exemplo n.º 18
0
        public void WhenSetFormulaWithNullThenDoNothing()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column("MyColumn");
            mapper.Formula(null);
            mapping.formula.Should().Be.Null();
            mapping.column.Should().Not.Be.Null();
        }
Exemplo n.º 19
0
        public void SettingFormulaOverridesColumnNodes()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column(cm => cm.SqlType("VARCHAR(80)"));
            mapper.Formula("formula");
            mapping.formula.Should().Be("formula");
            mapping.column.Should().Be(null);
            mapping.Items.Should().Be.Null();
        }
Exemplo n.º 20
0
        public void WhenSetFormulaThenResetColumn()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column("MyColumn");
            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
            mapping.column.Should().Be.Null();
            mapping.Items.Should().Be.Null();
        }
Exemplo n.º 21
0
        public void WhenSetBasicColumnValuesMoreThanOnesThenMergeColumn()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column(cm => cm.Length(50));
            mapper.Column(cm => cm.NotNullable(true));

            mapping.Items.Should().Be.Null();
            mapping.length.Should().Be("50");
            mapping.notnull.Should().Be(true);
        }
Exemplo n.º 22
0
        public void WhenSetTypeByIUserTypeWithParamsThenSetType()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Type <MyType>(new { Param1 = "a", Param2 = 12 });

            mapping.type1.Should().Be.Null();
            mapping.Type.name.Should().Contain("MyType");
            mapping.Type.param.Should().Have.Count.EqualTo(2);
            mapping.Type.param.Select(p => p.name).Should().Have.SameValuesAs("Param1", "Param2");
            mapping.Type.param.Select(p => p.GetText()).Should().Have.SameValuesAs("a", "12");
        }
        public void CanSetMultipleFormulas()
        {
            var            mapping = new HbmElement();
            IElementMapper mapper  = new ElementMapper(typeof(Element), mapping);

            mapper.Formulas("formula1", "formula2", "formula3");

            Assert.That(mapping.formula, Is.Null);
            Assert.That(mapping.Items, Has.Length.EqualTo(3));
            Assert.That(
                mapping.Items.Cast <HbmFormula>().Select(f => f.Text.Single()),
                Is.EquivalentTo(new[] { "formula1", "formula2", "formula3" }));
        }
Exemplo n.º 24
0
        public void WhenSetColumnValuesThenAddColumnTag()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column(cm =>
            {
                cm.SqlType("VARCHAR(50)");
                cm.NotNullable(true);
            });
            mapping.Items.Should().Not.Be.Null();
            mapping.Columns.Should().Have.Count.EqualTo(1);
        }
Exemplo n.º 25
0
 public ElementMapper(System.Type elementType, HbmElement elementMapping)
 {
     if (elementType == null)
     {
         throw new ArgumentNullException("elementType");
     }
     if (elementMapping == null)
     {
         throw new ArgumentNullException("elementMapping");
     }
     this.elementType          = elementType;
     this.elementMapping       = elementMapping;
     this.elementMapping.type1 = elementType.GetNhTypeName();
 }
Exemplo n.º 26
0
        public void SettingFormulaOverridesColumnPlainValues()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column("colName");
            mapper.Length(10);
            mapper.NotNullable(true);
            mapper.Formula("formula");
            mapping.formula.Should().Be("formula");
            mapping.column.Should().Be(null);
            mapping.length.Should().Be(null);
            mapping.notnull.Should().Be(false);
            mapping.Items.Should().Be.Null();
        }
Exemplo n.º 27
0
        public void WhenSetFormulaWithMultipleLinesThenSetFormulaNode()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);
            var formula = @"Line1
Line2";

            mapper.Formula(formula);
            mapping.formula.Should().Be.Null();
            mapping.Items.FirstOrDefault().Should().Not.Be.Null().And.Be.OfType <HbmFormula>();
            var hbmFormula = (HbmFormula)(mapping.Items.First());

            hbmFormula.Text.Length.Should().Be(2);
            hbmFormula.Text[0].Should().Be("Line1");
            hbmFormula.Text[1].Should().Be("Line2");
        }
        public void CanSetColumnsAndFormulas()
        {
            var            mapping = new HbmElement();
            IElementMapper mapper  = new ElementMapper(typeof(Element), mapping);

            mapper.ColumnsAndFormulas(x => x.Name("pizza"), x => x.Formula("risotto"), x => x.Name("pasta"));

            Assert.That(mapping.Items, Has.Length.EqualTo(3));
            Assert.That(mapping.Items[0], Is.TypeOf <HbmColumn>(), "first");
            Assert.That(mapping.Items[1], Is.TypeOf <HbmFormula>(), "second");
            Assert.That(mapping.Items[2], Is.TypeOf <HbmColumn>(), "third");
            Assert.That(((HbmColumn)mapping.Items[0]).name, Is.EqualTo("pizza"));
            Assert.That(((HbmFormula)mapping.Items[1]).Text, Has.Length.EqualTo(1).And.One.EqualTo("risotto"));
            Assert.That(((HbmColumn)mapping.Items[2]).name, Is.EqualTo("pasta"));
            Assert.That(mapping.column, Is.Null, "column");
            Assert.That(mapping.formula, Is.Null, "formula");
        }
Exemplo n.º 29
0
        public void WhenSetMultiColumnsValuesThenAddColumns()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Type <MyType>();
            mapper.Columns(cm =>
            {
                cm.Name("column1");
                cm.Length(50);
            }, cm =>
            {
                cm.Name("column2");
                cm.SqlType("VARCHAR(10)");
            });
            mapping.Columns.Should().Have.Count.EqualTo(2);
        }
Exemplo n.º 30
0
        public void WhenSetBasicColumnValuesThroughShortCutThenMergeColumn()
        {
            var mapping = new HbmElement();
            var mapper  = new ElementMapper(typeof(string), mapping);

            mapper.Column("pizza");
            mapper.Length(50);
            mapper.Precision(10);
            mapper.Scale(2);
            mapper.NotNullable(true);
            mapper.Unique(true);

            mapping.Items.Should().Be.Null();
            mapping.column.Should().Be("pizza");
            mapping.length.Should().Be("50");
            mapping.precision.Should().Be("10");
            mapping.scale.Should().Be("2");
            mapping.notnull.Should().Be(true);
            mapping.unique.Should().Be(true);
        }