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 }
public void Applying_a_generic_child_filter_to_a_many_to_many() { MappingTester<ManyToManyTarget> mapping = new MappingTester<ManyToManyTarget>() .ForMapping(m => m.HasManyToMany(x => x.BagOfChildren) .ApplyChildFilter<TestFilter>("Name = :name")); mapping .Element("class/bag/many-to-many/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); }
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 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); }
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 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); }