public ComponentNestedElementMapper(Type componentType, HbmMapping mapDoc, HbmNestedCompositeElement component, MemberInfo declaringComponentMember) { this.componentType = componentType; this.mapDoc = mapDoc; this.component = component; accessorPropertyMapper = new AccessorPropertyMapper(declaringComponentMember.DeclaringType, declaringComponentMember.Name, x => component.access = x); }
public void CanSetComponentAccessor() { var mapdoc = new HbmMapping(); var component = new HbmNestedCompositeElement(); var mapper = new ComponentNestedElementMapper(typeof(Number), mapdoc, component, ForClass <Address> .Property(a => a.Number)); mapper.Access(Accessor.Field); component.access.Should().Contain("field"); }
public void Component(MemberInfo property, Action <IComponentElementMapper> mapping) { System.Type nestedComponentType = property.GetPropertyOrFieldType(); var hbm = new HbmNestedCompositeElement { name = property.Name, @class = nestedComponentType.GetShortClassName(_mapDoc) }; mapping(new ComponentNestedElementMapper(nestedComponentType, _mapDoc, hbm, property)); AddProperty(hbm); }
public void CallPropertyMapper() { var mapdoc = new HbmMapping(); var component = new HbmNestedCompositeElement(); var mapper = new ComponentNestedElementMapper(typeof(Number), mapdoc, component, ForClass <Address> .Property(a => a.Number)); var called = false; mapper.Property(ForClass <Number> .Property(a => a.Block), x => called = true); called.Should().Be.True(); }
public void CanMapParent() { var mapdoc = new HbmMapping(); var component = new HbmNestedCompositeElement(); var mapper = new ComponentNestedElementMapper(typeof(Number), mapdoc, component, ForClass <Address> .Property(a => a.Number)); mapper.Parent(typeof(Address).GetProperty("Parent")); component.Parent.Should().Not.Be.Null(); component.Parent.name.Should().Be.EqualTo("Parent"); }
public void Component <TNestedComponent>(Expression <Func <TComponent, TNestedComponent> > property, Action <IComponentElementMapper <TNestedComponent> > mapping) where TNestedComponent : class { var hbm = new HbmNestedCompositeElement { name = TypeUtils.DecodeMemberAccessExpression(property).Name }; mapping(new ComponentNestedElementMapper <TNestedComponent>(mapDoc, hbm)); AddProperty(hbm); }
public void CanMapManyToOne() { var mapdoc = new HbmMapping(); var component = new HbmNestedCompositeElement(); var mapper = new ComponentNestedElementMapper(typeof(Number), mapdoc, component, ForClass <Address> .Property(a => a.Number)); mapper.ManyToOne(ForClass <Number> .Property(a => a.Parent), x => { }); component.Properties.Should().Have.Count.EqualTo(1); component.Properties.First().Name.Should().Be.EqualTo("Parent"); component.Properties.First().Should().Be.OfType <HbmManyToOne>(); }
public void CanMapProperty() { var mapdoc = new HbmMapping(); var component = new HbmNestedCompositeElement(); var mapper = new ComponentNestedElementMapper(typeof(Number), mapdoc, component, ForClass <Address> .Property(a => a.Number)); mapper.Property(ForClass <Number> .Property(a => a.Block), x => { }); mapper.Property(ForClass <Number> .Property(a => a.Dir), x => { }); component.Properties.Should().Have.Count.EqualTo(2); component.Properties.Select(cp => cp.Name).Should().Have.SameValuesAs("Block", "Dir"); }
public ComponentNestedElementMapper(HbmMapping mapDoc, HbmNestedCompositeElement component) { this.mapDoc = mapDoc; this.component = component; }