public void WhenAskForInterfaceThenGetFistEntityImplementingTheInterface() { var domainAnalyzer = new ObjectRelationalMapper(); domainAnalyzer.AddToDomain(typeof(MyRelation)); domainAnalyzer.AddToDomain(typeof(MyRelation1)); domainAnalyzer.GetBaseImplementors(typeof(IRelation)).Single().Should().Be(typeof(MyRelation)); domainAnalyzer.GetBaseImplementors(typeof(Relation1)).Single().Should().Be(typeof(MyRelation1)); }
public void WhenEntitiesOfDomainThenOnlyReturnFirstImplementorInTheHierarchy() { var domainAnalyzer = new ObjectRelationalMapper(); domainAnalyzer.AddToDomain(typeof(MyRelation)); domainAnalyzer.AddToDomain(typeof(MyRelation1)); domainAnalyzer.AddToDomain(typeof(MyRelationLevel1)); domainAnalyzer.AddToDomain(typeof(MyRelation1Lvel1)); domainAnalyzer.GetBaseImplementors(typeof(IRelation)).Single().Should().Be(typeof(MyRelation)); domainAnalyzer.GetBaseImplementors(typeof(Relation1)).Single().Should().Be(typeof(MyRelation1)); }
public void WhenModifyStateThenFindNewResults() { var domainAnalyzer = new ObjectRelationalMapper(); domainAnalyzer.AddToDomain(typeof(MyRelation)); domainAnalyzer.GetBaseImplementors(typeof(Relation1)).Should().Be.Empty(); domainAnalyzer.AddToDomain(typeof(MyRelation1)); domainAnalyzer.GetBaseImplementors(typeof(Relation1)).Single().Should().Be(typeof(MyRelation1)); }
public void WhenChangeStateOfWholeDomainThenOnlyInvalidateCache() { var domainAnalyzer = new ObjectRelationalMapper(); domainAnalyzer.AddToDomain(typeof(MyRelation)); domainAnalyzer.AddToDomain(typeof(MyRelation1)); domainAnalyzer.AddToDomain(typeof(MyRelationLevel1)); domainAnalyzer.AddToDomain(typeof(MyRelation1Lvel1)); domainAnalyzer.AddToDomain(typeof(IRelation)); domainAnalyzer.AddToDomain(typeof(Relation1)); domainAnalyzer.GetBaseImplementors(typeof(Relation1)); domainAnalyzer.Exclude(typeof(Relation1)); domainAnalyzer.GetBaseImplementors(typeof(Relation1)).Single().Should().Be(typeof(MyRelation1)); }
public void WhenRegisterWholeDomainThenOnlyReturnFirstNoJumpedImplementorInTheHierarchy() { var domainAnalyzer = new ObjectRelationalMapper(); domainAnalyzer.AddToDomain(typeof(MyRelation)); domainAnalyzer.AddToDomain(typeof(MyRelation1)); domainAnalyzer.AddToDomain(typeof(MyRelationLevel1)); domainAnalyzer.AddToDomain(typeof(MyRelation1Lvel1)); domainAnalyzer.AddToDomain(typeof(IRelation)); domainAnalyzer.AddToDomain(typeof(Relation1)); domainAnalyzer.Exclude(typeof(Relation1)); domainAnalyzer.GetBaseImplementors(typeof(IRelation)).Single().Should().Be(typeof(MyRelation)); domainAnalyzer.GetBaseImplementors(typeof(Relation1)).Single().Should().Be(typeof(MyRelation1)); }
public void WhenFindAncestorOfNullThenReturnEmpty() { var domainAnalyzer = new ObjectRelationalMapper(); domainAnalyzer.AddToDomain(typeof(MyRelation)); domainAnalyzer.AddToDomain(typeof(MyRelation1)); domainAnalyzer.GetBaseImplementors(null).Should().Be.Empty(); }
public void GetBaseImplementorsShouldReturnOnlyTheFirstBaseClassOfTheHierarchy() { var orm = new ObjectRelationalMapper(); orm.TablePerClass <Animal>(); orm.ManyToMany <Human, Human>(); orm.AddToDomain(new[] { typeof(Animal), typeof(Reptile), typeof(Lizard), typeof(Mammal), typeof(Human), typeof(DomesticAnimal), typeof(Cat), typeof(Dog) }); orm.GetBaseImplementors(typeof(Animal)).Should().Have.SameValuesAs(new[] { typeof(Animal) }); }