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))); }
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(); }
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, }); } }
public void CanSetFormula() { var mapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), mapping); mapper.Formula("SomeFormula"); mapping.formula.Should().Be("SomeFormula"); }
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(); }
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"); }
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(); }
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); }
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(); }
private void BindElement(HbmElement elementMapping, Mapping.Collection model) { var element = new SimpleValue(model.CollectionTable); model.Element = element; if (model.IsGeneric) { switch (model.GenericArguments.Length) { case 1: // a collection with a generic type parameter element.TypeName = model.GenericArguments[0].AssemblyQualifiedName; break; case 2: // a map (IDictionary) with 2 parameters element.TypeName = model.GenericArguments[1].AssemblyQualifiedName; break; } } new ValuePropertyBinder(element, Mappings).BindSimpleValue(elementMapping, Mapping.Collection.DefaultKeyColumnName, true); }
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); }
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 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(); }
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"); }
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 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); }
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)); }
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(); }
public void WhenCreatedThenAutoAssignType() { var elementMapping = new HbmElement(); var mapper = new ElementMapper(typeof(string), elementMapping); elementMapping.type1.Should().Be("String"); }
public void Element(Action<IElementMapper> mapping) { var hbm = new HbmElement(); mapping(new ElementMapper(collectionElementType, hbm)); elementRelationshipAssing(hbm); }
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 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"); }
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); }
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); }
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(); }