public void AutoCleanUnsupportedCascadeStyle() { var hbmMapping = new HbmMapping(); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(null, hbm, hbmMapping); mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.DeleteOrphans | Mapping.ByCode.Cascade.Remove); hbm.cascade.Split(',').Select(w => w.Trim()).All(w => w.Satisfy(cascade => !cascade.Contains("orphan"))); }
public void AssignCascadeStyle() { var hbmMapping = new HbmMapping(); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(null, hbm, hbmMapping); mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.Remove); hbm.cascade.Split(',').Select(w => w.Trim()).Should().Contain("persist").And.Contain("delete"); }
public void AfterSetMultiColumnsCantSetSimpleColumn() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); ActionAssert.Throws<ConfOrm.MappingException>(() => mapper.Column(cm => cm.Length(50))); }
public virtual void ManyToOne(MemberInfo property, Action<IManyToOneMapper> mapping) { if (!IsMemberSupportedByMappedContainer(property)) { throw new ArgumentOutOfRangeException("property", "Can't add a property of another graph"); } var hbm = new HbmManyToOne { name = property.Name }; mapping(new ManyToOneMapper(property, hbm, MapDoc)); AddProperty(hbm); }
public void CanSetAccessor() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.Access(Accessor.ReadOnly); hbm.Access.Should().Be("readonly"); }
public void SettingColumnOverridesFormula() { var hbmMapping = new HbmMapping(); var member = ForClass<MyClass>.Property(c => c.Relation); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Formula("formula"); mapper.Column(cm => cm.Unique(true)); mapping.formula.Should().Be.Null(); }
public void CanSetFormula() { var hbmMapping = new HbmMapping(); var member = ForClass<MyClass>.Property(c=> c.Relation); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Formula("SomeFormula"); mapping.formula.Should().Be("SomeFormula"); }
public void CanSetAccessor() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.Access(Accessor.ReadOnly); Assert.That(hbm.Access, Is.EqualTo("readonly")); }
public void WhenSetDefaultColumnNameThenDoesNotSetTheName() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Column(cm => cm.Name("Relation")); mapping.column.Should().Be.Null(); mapping.Columns.Should().Be.Empty(); }
public void Should_get_exception_given_notnullSpecified_is_false_and_Items_is_null() { HbmManyToOne manyToOne = new HbmManyToOne { notnullSpecified = false, Items = null }; bool? result = manyToOne.CanBeNull(); result.ShouldBeNull(); }
public ManyToOneMapper(MemberInfo member, IAccessorPropertyMapper accessorPropertyMapper, HbmManyToOne manyToOne, HbmMapping mapDoc) { this.member = member; this.manyToOne = manyToOne; this.mapDoc = mapDoc; if (member == null) { this.manyToOne.access = "none"; } entityPropertyMapper = member == null ? new NoMemberPropertyMapper() : accessorPropertyMapper; }
public void SettingColumnPlainValuesOverridesFormula() { var hbmMapping = new HbmMapping(); var member = ForClass<MyClass>.Property(c => c.Relation); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Formula("formula"); mapper.Column("colName"); mapping.formula.Should().Be.Null(); mapping.column.Should().Be("colName"); }
public void CanForceClassRelation() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("TheOtherRelation"); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Class(typeof (Relation)); mapping.Class.Should().Contain("Relation").And.Not.Contain("IRelation"); }
public void WhenSetDifferentColumnNameThenSetTheName() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.Column(cm => cm.Name("RelationId")); hbm.Columns.Should().Have.Count.EqualTo(1); hbm.Columns.Single().name.Should().Be("RelationId"); }
public void Should_get__false__given_notnullSpecified_and_notnull_are_both_true() { HbmManyToOne manyToOne = new HbmManyToOne { notnullSpecified = true, notnull = true }; bool? result = manyToOne.CanBeNull(); result.ShouldNotBeNull(); result.Value.ShouldBeFalse(); }
public void SettingFormulaOverridesColumnNodes() { var hbmMapping = new HbmMapping(); var member = ForClass<MyClass>.Property(c => c.Relation); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); 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 Should_get_null_given_notnullSpecified_is_false_and_Items_notnullSpecified_is_false() { HbmManyToOne manyToOne = new HbmManyToOne { notnullSpecified = false, Items = new object[] { new HbmColumn { notnullSpecified = false } } }; bool? result = manyToOne.CanBeNull(); result.ShouldBeNull(); }
public void WhenSetBasicColumnValuesThenSetPlainValues() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Column(cm => { cm.UniqueKey("theUnique"); cm.NotNullable(true); }); Assert.That(mapping.Items, Is.Null); Assert.That(mapping.uniquekey, Is.EqualTo("theUnique")); Assert.That(mapping.notnull, Is.EqualTo(true)); Assert.That(mapping.notnullSpecified, Is.EqualTo(true)); }
public ManyToOneMapper(MemberInfo member, HbmManyToOne manyToOne, HbmMapping mapDoc) { this.member = member; this.manyToOne = manyToOne; this.mapDoc = mapDoc; if (member == null) { this.manyToOne.access = "none"; } if (member == null) { entityPropertyMapper = new NoMemberPropertyMapper(); } else { entityPropertyMapper = new AccessorPropertyMapper(member.DeclaringType, member.Name, x => manyToOne.access = x); } }
private void BindManyToOneProperty(HbmManyToOne manyToOneMapping, Property property) { property.Cascade = manyToOneMapping.cascade ?? mappings.DefaultCascade; property.IsUpdateable = manyToOneMapping.update; property.IsInsertable = manyToOneMapping.insert; var toOne = property.Value as ToOne; if (toOne != null) { string propertyRef = toOne.ReferencedPropertyName; if (propertyRef != null) mappings.AddUniquePropertyReference(toOne.ReferencedEntityName, propertyRef); toOne.CreateForeignKey(); } }
private void InitOuterJoinFetchSetting(HbmManyToOne manyToOneMapping, ManyToOne model) { FetchMode fetchStyle = !manyToOneMapping.fetchSpecified ? (!manyToOneMapping.outerjoinSpecified ? FetchMode.Default : GetFetchStyle(manyToOneMapping.outerjoin)) : GetFetchStyle(manyToOneMapping.fetch); model.FetchMode = fetchStyle; }
private void BindManyToOne(HbmManyToOne manyToOneMapping, ManyToOne model, string defaultColumnName, bool isNullable) { new ValuePropertyBinder(model, Mappings).BindSimpleValue(manyToOneMapping, defaultColumnName, isNullable); InitOuterJoinFetchSetting(manyToOneMapping, model); InitLaziness(manyToOneMapping.Lazy, model, true); var ukName = !string.IsNullOrEmpty(manyToOneMapping.propertyref) ? manyToOneMapping.propertyref : null; if (ukName != null) model.ReferencedPropertyName = ukName; model.ReferencedEntityName = GetEntityName(manyToOneMapping, mappings); model.IsIgnoreNotFound = manyToOneMapping.NotFoundMode == HbmNotFoundMode.Ignore; if (ukName != null && !model.IsIgnoreNotFound) { AddManyToOneSecondPass(model); } BindForeingKey(manyToOneMapping.foreignkey, model); }
public void Should_get_the_correct_value_from_Items_given_null_index() { const string expected = "Name"; HbmManyToOne manyToOne = new HbmManyToOne { Items = new object[] { new HbmColumn { index = expected } } }; string result = manyToOne.GetUniqueIndex(); result.ShouldNotBeNull(); result.ShouldBeEqualTo(expected); }
public void Should_get_the_correct_value_from_index_if_not_null() { const string expected = "Name"; HbmManyToOne manyToOne = new HbmManyToOne { index = expected }; string result = manyToOne.GetUniqueIndex(); result.ShouldNotBeNull(); result.ShouldBeEqualTo(expected); }
public void Should_get_null_given_null_index_and_Items_index() { HbmManyToOne manyToOne = new HbmManyToOne { Items = new object[] {new HbmColumn()} }; string result = manyToOne.GetUniqueIndex(); result.ShouldBeNull(); }
public void Should_get_the_correct_value_from_Items_given_null_column() { const string expected = "VARCHAR2"; HbmManyToOne manyToOne = new HbmManyToOne { Items = new object[] { new HbmColumn { sqltype = expected } } }; string result = manyToOne.GetSqlType(); result.ShouldBeEqualTo(expected); }
public void Should_get_the_correct_value_from_column_if_not_null() { const string expected = "VARCHAR2"; HbmManyToOne manyToOne = new HbmManyToOne { column = expected }; string result = manyToOne.GetSqlType(); result.ShouldBeEqualTo(expected); }
public void Should_get_the_correct_value() { const string expected = "System.String"; HbmManyToOne manyToOne = new HbmManyToOne { @class = expected + ", mscorlib" }; string result = manyToOne.GetReturnType(); result.ShouldBeEqualTo(expected); }
public void Should_get_the_correct_value() { const string expected = "FirstName"; HbmManyToOne manyToOne = new HbmManyToOne { name = expected }; string result = manyToOne.GetPropertyName(); result.ShouldBeEqualTo(expected); }
public void Should_get_the_correct_value_from_Items_if_sqltype_is_valid() { const int expected = 16; HbmManyToOne manyToOne = new HbmManyToOne { column = "VARCHAR2", Items = new object[] { new HbmColumn { length = expected.ToString() } } }; int? result = manyToOne.GetMaxLength(); result.ShouldNotBeNull(); result.Value.ShouldBeEqualTo(expected); }