Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        public void WhenFindAncestorOfNullThenReturnEmpty()
        {
            var domainAnalyzer = new ObjectRelationalMapper();

            domainAnalyzer.AddToDomain(typeof(MyRelation));
            domainAnalyzer.AddToDomain(typeof(MyRelation1));
            domainAnalyzer.GetBaseImplementors(null).Should().Be.Empty();
        }
Пример #7
0
        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) });
        }