public void EndElement_ShouldReturnParentScope()
        {
            var parentScope = new object();
            var builder = new ChildElementMappingBuilder<Person, Address, object>(parentScope, Ns + "Address", x => x.Address);

            builder.EndElement().ShouldBe(parentScope);
        }
        public void Build_ShouldCreateValidMapping()
        {
            var person = new Person();
            var address = new Address {StreetName = "231 Queen Street", City = "Auckland"};
            var builder = new ChildElementMappingBuilder<Person, Address, object>(null, Ns + "Address", x => x.Address);

            builder.Attribute(Ns + "City", x => x.City, x => x, x => x);
            builder.Element(Ns + "PostCode", x => x.PostCode);
            builder.CollectionElement(Ns + "AreaCode", x => x.AreaCodes);

            var actual = (ChildElementMapping<Person, Address>)builder.Build();

            actual.SetOnContainer(person, address);
            actual.GetFromContainer(person).ShouldBe(address);
            person.Address.ShouldBe(address);
            actual.Attributes.Length.ShouldBe(1);
            actual.ChildElements.Length.ShouldBe(2);
            actual.ChildElements[0].ShouldBeTypeOf(typeof(ChildElementMapping<Address, PostCode>));
            actual.ChildElements[1].ShouldBeTypeOf(typeof(CollectionChildElementMapping<Address, AreaCode>));
        }