public void PartsWithTheSameLevelAndPositionShouldRemainInTheOriginalAddedOrder()
        {
            var mappingTester = new MappingTester <MappedObject>().ForMapping(mappedObject =>
            {
                mappedObject.Id(x => x.Id);                                                                                            //First
                mappedObject.Map(x => x.NullableColor);                                                                                //Anywhere
                mappedObject.Map(x => x.Version);                                                                                      //Anywhere
                mappedObject.Map(x => x.Id);                                                                                           //Anywhere
                mappedObject.Map(x => x.NickName);                                                                                     //Anywhere
                mappedObject.Map(x => x.Name);                                                                                         //Anywhere
                mappedObject.Map(x => x.Color);                                                                                        //Anywhere
                mappedObject.DiscriminateSubClassesOnColumn <string>("Type").SubClass <SecondMappedObject>(sc => sc.Map(x => x.Name)); //Last
            });

            mappingTester
            //Element 0 is id
            //Element 1 is discriminator
            .Element("class/property[@name='NullableColor']").ShouldBeInParentAtPosition(2)
            .Element("class/property[@name='Version']").ShouldBeInParentAtPosition(3)
            .Element("class/property[@name='Id']").ShouldBeInParentAtPosition(4)
            .Element("class/property[@name='NickName']").ShouldBeInParentAtPosition(5)
            .Element("class/property[@name='Name']").ShouldBeInParentAtPosition(6)
            .Element("class/property[@name='Color']").ShouldBeInParentAtPosition(7);
            //Element 8 is subclass
        }
示例#2
0
        public void Applying_a_filter_to_a_many_to_many()
        {
            MappingTester <ManyToManyTarget> mapping = new MappingTester <ManyToManyTarget>()
                                                       .ForMapping(m => m.HasManyToMany(x => x.BagOfChildren)
                                                                   .ApplyFilter <TestFilter>("Name = :name"));

            mapping
            .Element("class/bag/filter")
            .HasAttribute("name", "test")
            .HasAttribute("condition", "Name = :name");
        }
        public void PartsAreOrderedByPositionAndLevelRegardlessOfDeclaredOrder()
        {
            var mappingTester = new MappingTester <MappedObject>().ForMapping(mappedObject =>
            {
                mappedObject.HasMany(x => x.Children).AsBag();
                mappedObject.Version(x => x.Version);
                mappedObject.Id(x => x.Id);
            });

            mappingTester
            .Element("class/id").ShouldBeInParentAtPosition(0)
            .Element("class/version").ShouldBeInParentAtPosition(1)
            .Element("class/bag").ShouldBeInParentAtPosition(2);
        }
示例#4
0
        public void AnyIsAfterIdElement()
        {
            var mapTest = new MappingTester <MappedObject>()
                          .ForMapping(map =>
            {
                map.Id(x => x.Id);
                map.ReferencesAny(x => x.Parent)
                .EntityIdentifierColumn("AnyId")
                .EntityTypeColumn("AnyType")
                .IdentityType(x => x.Id)
                .AddMetaValue <SecondMappedObject>("SMO");
            });

            mapTest.Element("class/id").ShouldBeInParentAtPosition(0);
        }
        public void PartsAreOrderedByPosition()
        {
            var mappingTester = new MappingTester <MappedObject>().ForMapping(mappedObject =>
            {
                mappedObject.DiscriminateSubClassesOnColumn <string>("Type").SubClass <SecondMappedObject>(sc => sc.Map(x => x.Name)); //Last
                mappedObject.Id(x => x.Id);                                                                                            //First
                mappedObject.HasMany(x => x.Children).AsBag();                                                                         //Anywhere
            });

            mappingTester
            .Element("class/id").ShouldBeInParentAtPosition(0)
            .Element("class/discriminator").ShouldBeInParentAtPosition(1)     //created due to subclassing
            .Element("class/bag").ShouldBeInParentAtPosition(2)
            .Element("class/subclass").ShouldBeInParentAtPosition(3);
        }
        public void CanSetNestedCompositeElementAccessAccess()
        {
            var tester = new MappingTester <PropertyTarget>()
                         .ForMapping(m =>
                                     m.HasMany(x => x.Components)
                                     .Component(c =>
            {
                c.Map(x => x.Name);
                c.Component(target => target.MyParent, nested => nested.Access.BackingField());
            }));

            tester
            .Element("class/bag/composite-element/nested-composite-element").Exists()
            .HasAttribute("name", "MyParent")
            .HasAttribute("access", "backfield");
        }
        public void PartsWithSamePositionAreOrderedByLevel()
        {
            var mappingTester = new MappingTester <MappedObject>().ForMapping(mappedObject =>
            {
                mappedObject.Version(x => x.Version);                                                                                  //Level 4
                mappedObject.DiscriminateSubClassesOnColumn <string>("Type").SubClass <SecondMappedObject>(sc => sc.Map(x => x.Name)); //Level 3
                mappedObject.Id(x => x.Id);                                                                                            //Level 2
                mappedObject.Cache.ReadWrite();                                                                                        //Level 1
            });

            mappingTester
            .Element("class/cache").ShouldBeInParentAtPosition(0)
            .Element("class/id").ShouldBeInParentAtPosition(1)
            .Element("class/discriminator").ShouldBeInParentAtPosition(2)
            .Element("class/version").ShouldBeInParentAtPosition(3);
        }
示例#8
0
        public void SpecificMetaTypeShouldNotClearMetaValues()
        {
            var mapTest = new MappingTester <MappedObject>()
                          .ForMapping(map =>
            {
                map.Id(x => x.Id);
                map.ReferencesAny(x => x.Parent)
                .EntityIdentifierColumn("AnyId")
                .EntityTypeColumn("AnyType")
                .IdentityType(x => x.Id)
                .MetaType <int>()
                .AddMetaValue <SecondMappedObject>("1");
            });

            mapTest
            .Element("class/any/meta-value")
            .HasAttribute("value", "1")
            .HasAttribute("class", typeof(SecondMappedObject).AssemblyQualifiedName);
        }