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 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 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");
        }