public void Test_GetOwningPropName_WhenNeitherHaveProps_WhenOwnerGTRelated_ShouldReturnRevRelNameID()
        {
            //---------------Set up test pack-------------------
            var ownerType = MockRepository.GenerateMock<FakeTypeWrapper>();
            var relatedType = MockRepository.GenerateMock<FakeTypeWrapper>();
            var reverseRelName = GetRandomString();
            var relationshipName = GetRandomString();
            string owningFKPropName = relationshipName + "ID";
            string relatedFKPropName = reverseRelName + "ID";

            PropertyWrapper propertyWrapper = MockRepository.GenerateStub<FakePropertyWrapper>();
            SetupMockPropWrapper(propertyWrapper, ownerType, relatedType, relationshipName, reverseRelName);

            ownerType.SetName("zzzzz");
            relatedType.SetName("aaaa");
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
            Assert.AreEqual(1, ownerType.Name.CompareTo(relatedType.Name));
            AssertMockPropSetupCorrectly(propertyWrapper, ownerType, relatedType, relationshipName, reverseRelName);
            
            //---------------Execute Test ----------------------
            var relatedPropName = autoMapper.GetOwningPropName();
            //---------------Test Result -----------------------
            Assert.AreEqual(owningFKPropName, relatedPropName);
        }
        public void Test_GetOwningPropName_OwnerHasProp_RelatedNotHasProp_ShouldReturnRelatedTypePkName()
        {
            //---------------Set up test pack-------------------
            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);
            //SetupMockPropWrapper(propertyWrapper, ownerType, relatedType, relationshipName, reverseRelName);
            ownerType.SetHasProperty(owningFKPropName, true);
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsTrue(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
            //Assert.AreEqual(reverseRelName, propertyWrapper.GetSingleReverseRelationshipName<AutoMapOneToOne>());
            Assert.AreSame(ownerType, propertyWrapper.DeclaringType);
            Assert.AreSame(relatedType, propertyWrapper.RelatedClassType);
//            Assert.AreEqual(relationshipName, propertyWrapper.Name);
            //---------------Execute Test ----------------------
            var relatedPropName = autoMapper.GetOwningPropName();
            //---------------Test Result -----------------------
            Assert.AreEqual(owningFKPropName, relatedPropName);
        }
        public void Test_GetOwningPropName_OwnerHasProp_RelatedHasProp_NonStandardNaming_ShouldReturnFoundRelName()
        {
            //---------------Set up test pack-------------------
            SetNonDefaultNamingConvention();
            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);

            ownerType.SetHasProperty(owningFKPropName, true);
            relatedType.SetHasProperty(relatedFKPropName, true);
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsTrue(ownerType.HasProperty(owningFKPropName));
            Assert.IsTrue(relatedType.HasProperty(relatedFKPropName));
//            Assert.AreNotEqual(relationshipName, relatedType.Name);
//            AssertMockPropSetupCorrectly(propertyWrapper, ownerType, relatedType, relationshipName, reverseRelName);
            
            //---------------Execute Test ----------------------
            var relatedPropName = autoMapper.GetOwningPropName();
            //---------------Test Result -----------------------
            Assert.AreEqual(owningFKPropName, relatedPropName);
        }
        public void Test_GetRelatedPropName_OwnerNotHasProp_RelatedHasProp_ShouldReturnFoundRelName()
        {
            //---------------Set up test pack-------------------
            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);

            relatedType.SetHasProperty(relatedFKPropName, true);
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
            Assert.IsTrue(relatedType.HasProperty(relatedFKPropName));
            
            //---------------Execute Test ----------------------
            var relatedPropName = autoMapper.GetRelatedPropName();
            //---------------Test Result -----------------------
            Assert.AreEqual(relatedFKPropName, relatedPropName);
        }
 public void Test_GetRelatedPropName_NeitherHaveProps_NonDefaultNaming_ShouldReturnRevRelNameID()
 {
     //---------------Set up test pack-------------------
     SetNonDefaultNamingConvention();
     var ownerType = MockRepository.GenerateMock<FakeTypeWrapper>();
     var relatedType = MockRepository.GenerateMock<FakeTypeWrapper>();
     var reverseRelName = GetRandomString();
     var relationshipName = GetRandomString();
     var owningFKPropName = GetFKPropName(relationshipName);
     var relatedFKPropName = GetFKPropName(reverseRelName);
     PropertyWrapper propertyWrapper = MockRepository.GenerateStub<FakePropertyWrapper>();
     SetupMockPropWrapper(propertyWrapper, ownerType, relatedType, relationshipName, reverseRelName);
     ownerType.SetName("1111");
     relatedType.SetName("2222");
     OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
     //---------------Assert Precondition----------------
     Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
     Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
     Assert.AreEqual(-1, ownerType.Name.CompareTo(relatedType.Name));
     AssertMockPropSetupCorrectly(propertyWrapper, ownerType, relatedType, relationshipName, reverseRelName);
     //---------------Execute Test ----------------------
     var relatedPropName = autoMapper.GetRelatedPropName();
     //---------------Test Result -----------------------
     Assert.AreEqual(relatedFKPropName, relatedPropName);
 }
        public void Test_OwningBoHasForeignKey_OwnerHasProp_RelatedNotHasProp_ShouldReturnTrue()
        {
            //---------------Set up test pack-------------------
            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);

            ownerType.SetHasProperty(owningFKPropName, true);
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsTrue(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));

            //---------------Execute Test ----------------------
            var owningBoHasForeignKey = autoMapper.OwningBoHasForeignKey;
            //---------------Test Result -----------------------
            Assert.IsTrue(owningBoHasForeignKey);
        }
 public void Test_Map_OwningBoHasFK_ShouldReturnRelatedTypePkName()
 {
     //---------------Set up test pack-------------------
     TypeWrapper ownerType; TypeWrapper relatedType;
     string relatedFKPropName; string owningFKPropName;
     var propertyWrapper
             = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);
     relatedType.SetHasProperty(relatedFKPropName, true);
     propertyWrapper.SetIsSingleRelationship(true);
     OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
     //---------------Assert Precondition----------------
     Assert.IsFalse(autoMapper.OwningBoHasForeignKey);
     Assert.IsTrue(propertyWrapper.IsSingleRelationship);
     Assert.IsTrue(propertyWrapper.IsPublic);
     Assert.IsFalse(propertyWrapper.IsInherited);
     Assert.IsTrue(autoMapper.MustBeMapped());
     //---------------Execute Test ----------------------
     var relationshipDef = autoMapper.MapOneToOne();
     //---------------Test Result -----------------------
     Assert.IsNotNull(relationshipDef);
     Assert.IsInstanceOf(typeof (SingleRelationshipDef), relationshipDef);
     Assert.IsFalse(relationshipDef.OwningBOHasForeignKey);
     Assert.AreEqual(DeleteParentAction.Prevent, relationshipDef.DeleteParentAction);
 }
        public void Test_OwningBoHasForeignKey_BothHave_FakeNameConvention_ShouldReturnFalse()
        {
            //---------------Set up test pack-------------------
            SetNonDefaultNamingConvention();

            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);

            ownerType.SetHasProperty(owningFKPropName, true);
            relatedType.SetHasProperty(relatedFKPropName, true);
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsTrue(ownerType.HasProperty(owningFKPropName));
            Assert.IsTrue(relatedType.HasProperty(relatedFKPropName));
            Assert.AreNotEqual(propertyWrapper.Name, relatedType.Name);
            //---------------Execute Test ----------------------
            var owningBoHasForeignKey = autoMapper.OwningBoHasForeignKey;
            //---------------Test Result -----------------------
            Assert.IsTrue(owningBoHasForeignKey);
        }
        public void Test_OwningBOHasForeignKey_WhenIsComposition_AndNeitherHaveProps_ShouldRetFalse()
        {
            //---------------Set up test pack-------------------
            SetNonDefaultNamingConvention();

            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);
            ownerType.ClearReturnValue();
            ownerType.SetName("ZZZZZ" + relatedType.Name);

            propertyWrapper.SetOneToOneAttributeOnStub(RelationshipType.Composition);
    /*        propertyWrapper.Stub(pw => pw.GetAttribute<AutoMapOneToOneAttribute>()).Return(
                    new AutoMapOneToOneAttribute(RelationshipType.Composition));*/
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
            Assert.AreEqual(RelationshipType.Composition, GetAutomapAttribute(propertyWrapper).RelationshipType);
            //---------------Execute Test ----------------------
            var owningBoHasForeignKey = autoMapper.OwningBoHasForeignKey;
            //---------------Test Result -----------------------
            Assert.IsFalse(owningBoHasForeignKey);
        }
        public void Test_OwningBoHasForeignKey_NeitherHaveProps_OwnerLTRelated_ShouldReturnFalse()
        {
            //---------------Set up test pack-------------------
            TypeWrapper ownerType;
            string relatedFKPropName; string owningFKPropName;
            ownerType = GetMockTypeWrapper(GetRandomString());


            FakeTypeWrapper relatedType = MockRepository.GenerateMock<FakeTypeWrapper>();
            relatedType.SetName("zzzzz");
            var reverseRelName = GetRandomString();
            var relationshipName = GetRandomString();
            owningFKPropName = GetFKPropName(relationshipName);
            relatedFKPropName = GetFKPropName(reverseRelName);

            PropertyWrapper propertyWrapper1 = MockRepository.GenerateMock<FakePropertyWrapper>();
            SetupMockPropWrapper(propertyWrapper1, ownerType, relatedType, relationshipName, reverseRelName);
            var propertyWrapper
                    = propertyWrapper1;
            ownerType.ClearReturnValue();
            ownerType.SetName("aaaaa");
            relatedType.SetName("zzzzz");
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
            Assert.AreEqual(1, relatedType.Name.CompareTo(ownerType.Name));

            //---------------Execute Test ----------------------
            var owningBoHasForeignKey = autoMapper.OwningBoHasForeignKey;
            //---------------Test Result -----------------------
            Assert.IsFalse(owningBoHasForeignKey);
        }
        public void Test_OwningBoHasForeignKey_NeitherHaveProps_NonDefaultNaming_ShouldReturnFalse()
        {
            //---------------Set up test pack-------------------
            SetNonDefaultNamingConvention();

            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);
            ownerType.ClearReturnValue();

            ownerType.SetName("1111");
            relatedType.SetName("2222");
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
            Assert.AreEqual(-1, ownerType.Name.CompareTo(relatedType.Name));
//            AssertMockPropSetupCorrectly(propertyWrapper, ownerType, relatedType, relationshipName, reverseRelName);
            //---------------Execute Test ----------------------
            var owningBoHasForeignKey = autoMapper.OwningBoHasForeignKey;
            //---------------Test Result -----------------------
            Assert.IsFalse(owningBoHasForeignKey);
        }
 public void Test_Map_ShouldCreateRelProp_WithCorrectNames()
 {
     //---------------Set up test pack-------------------
     TypeWrapper ownerType; TypeWrapper relatedType;
     string relatedFKPropName; string owningFKPropName;
     var propertyWrapper
             = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);
     propertyWrapper.SetIsSingleRelationship(true);
     OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
     var expectedReverseRelName = propertyWrapper.GetSingleReverseRelationshipName<AutoMapOneToOneAttribute>();
     //---------------Assert Precondition----------------
     Assert.IsTrue(propertyWrapper.IsSingleRelationship);
     Assert.AreEqual(expectedReverseRelName, autoMapper.ReverseRelationshipName);
     //---------------Execute Test ----------------------
     var relationshipDef = autoMapper.MapOneToOne();
     //---------------Test Result -----------------------
     Assert.IsNotNull(relationshipDef);
     Assert.IsInstanceOf(typeof (SingleRelationshipDef), relationshipDef);
     Assert.AreEqual(1, relationshipDef.RelKeyDef.Count);
     var relPropDef = relationshipDef.RelKeyDef[autoMapper.GetOwningPropName()];
     Assert.AreEqual(autoMapper.GetRelatedPropName(), relPropDef.RelatedClassPropName);
 }
        public void Test_Map_ShouldSetRelationshipAsOneToOne()
        {
            //---------------Set up test pack-------------------
            PropertyWrapper propertyWrapper = GetPropertyWrapper();
            propertyWrapper.SetIsSingleRelationship(true);

            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsTrue(propertyWrapper.IsSingleRelationship);
            //---------------Execute Test ----------------------
            var relationshipDef = autoMapper.MapOneToOne();
            //---------------Test Result -----------------------
            Assert.IsNotNull(relationshipDef);
            Assert.IsTrue(relationshipDef.IsOneToOne);
        }
 public void Test_Map_ShouldSetReverseRelationshipName()
 {
     //---------------Set up test pack-------------------
     PropertyWrapper propertyWrapper = GetPropertyWrapper(); 
     propertyWrapper.SetIsSingleRelationship(true);
     OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
     var expectedReverseRelName = propertyWrapper.GetSingleReverseRelationshipName<AutoMapOneToOneAttribute>();
     //---------------Assert Precondition----------------
     Assert.IsTrue(propertyWrapper.IsSingleRelationship);
     Assert.AreEqual(expectedReverseRelName, autoMapper.ReverseRelationshipName);
     //---------------Execute Test ----------------------
     var relationshipDef = autoMapper.MapOneToOne();
     //---------------Test Result -----------------------
     Assert.IsNotNull(relationshipDef);
     Assert.IsInstanceOf(typeof (SingleRelationshipDef), relationshipDef);
     Assert.AreEqual(expectedReverseRelName, relationshipDef.ReverseRelationshipName);
 }
 public void Test_CreateRelPropDef_WithDefaultIDConventionName_ShouldCreateWithCorrectOwningAndRelatedPropNames()
 {
     //---------------Set up test pack-------------------
     TypeWrapper ownerType; TypeWrapper relatedType;
     string relatedFKPropName; string owningFKPropName;
     var propertyWrapper 
             = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);
     ownerType.SetHasProperty(owningFKPropName, true);
     relatedType.SetHasProperty(relatedFKPropName, true);
     var autoMapper = new OneToOneAutoMapper(propertyWrapper);
     //---------------Assert Precondition----------------
     Assert.IsTrue(ownerType.HasProperty(owningFKPropName));
     Assert.IsTrue(relatedType.HasProperty(relatedFKPropName));
     Assert.IsNotNullOrEmpty(autoMapper.GetOwningPropName());
     Assert.IsNotNullOrEmpty(autoMapper.GetRelatedPropName());
     //---------------Execute Test ----------------------
     var relPropDef = autoMapper.CreateRelPropDef();
     //---------------Test Result -----------------------
     Assert.IsNotNull(relPropDef);
     Assert.AreEqual(autoMapper.GetOwningPropName(), relPropDef.OwnerPropertyName);
     Assert.AreEqual(autoMapper.GetRelatedPropName(), relPropDef.RelatedClassPropName);
 }
        public void Test_OwningBOHasForeignKey_WhenIsAssociation_AndNeitherHaveProps_WhenOwnerGTRelated_ShouldReturnTrue_FixBug909()
        {
            //---------------Set up test pack-------------------
            SetNonDefaultNamingConvention();

            TypeWrapper ownerType; TypeWrapper relatedType;
            string relatedFKPropName; string owningFKPropName;
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, out relatedFKPropName, out owningFKPropName);
            ownerType.ClearReturnValue();
            ownerType.SetName("ZZZZZZ" + relatedType.Name);
            propertyWrapper.SetOneToOneAttributeOnStub(RelationshipType.Association);
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
            Assert.AreEqual(RelationshipType.Association, GetAutomapAttribute(propertyWrapper).RelationshipType);
            Assert.AreEqual(1, ownerType.Name.CompareTo(relatedType.Name), "OwnerNameShouldBeGreaterThanRelatedName");
            //---------------Execute Test ----------------------
            var owningBoHasForeignKey = autoMapper.OwningBoHasForeignKey;
            //---------------Test Result -----------------------
            Assert.IsTrue(owningBoHasForeignKey);
        }
 public void Test_ReverseRelationshipName_ShouldBeSameAsPropReverseRelName()
 {
     //---------------Set up test pack-------------------
     PropertyWrapper propertyWrapper = MockRepository.GenerateMock<FakePropertyWrapper>();
     var expectedRevRelName = GetRandomString();
     propertyWrapper.SetOneToOneReverseRelName(expectedRevRelName);
     OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
     //---------------Assert Precondition----------------
     Assert.AreEqual(expectedRevRelName, propertyWrapper.GetSingleReverseRelationshipName<AutoMapOneToOneAttribute>());
     //---------------Execute Test ----------------------
     var revRelName = autoMapper.ReverseRelationshipName;
     //---------------Test Result -----------------------
     Assert.AreEqual(expectedRevRelName, revRelName);
 }
        public void Test_OwningBOHasForeignKey_WhenIsAssociation_AndNeitherHaveProps_WhenOwnerLTRelated_ShouldReturnFalse_FixBug909()
        {
            //---------------Set up test pack-------------------
            SetNonDefaultNamingConvention();

            TypeWrapper ownerType; TypeWrapper relatedType;
            var ownerTypeName = "A" + GetRandomString();
            var propertyWrapper
                    = GetPropertyWrapper(out ownerType, out relatedType, ownerTypeName, "ZZZZZZ" + ownerTypeName);
            propertyWrapper.SetOneToOneAttributeOnStub(RelationshipType.Association);

            string owningFKPropName = GetFKPropName(propertyWrapper.Name);
            var reverseRelName = propertyWrapper.GetSingleReverseRelationshipName<AutoMapOneToOneAttribute>();
            string relatedFKPropName = GetFKPropName(reverseRelName);      

            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsFalse(ownerType.HasProperty(owningFKPropName));
            Assert.IsFalse(relatedType.HasProperty(relatedFKPropName));
            Assert.AreEqual(RelationshipType.Association, GetAutomapAttribute(propertyWrapper).RelationshipType);
            Assert.Greater(ownerType.Name, relatedType.Name, "RelatedNameShouldBeGreaterThanOwnerName");
            //---------------Execute Test ----------------------
            var owningBoHasForeignKey = autoMapper.OwningBoHasForeignKey;
            //---------------Test Result -----------------------
            Assert.IsFalse(owningBoHasForeignKey, "ShouldNotBeOwningBOHasFK");
        }
        public void Test_MustBeMapped_WhenPropIsInherited_ShouldRetFalse()
        {
            //---------------Set up test pack-------------------

            var propertyWrapper = MockRepository.GenerateStub<FakePropertyWrapper>();
            propertyWrapper.Stub(wrapper => wrapper.IsPublic).Return(true);
            propertyWrapper.Stub(wrapper => wrapper.IsInherited).Return(true);
            propertyWrapper.Stub(wrapper => wrapper.IsSingleRelationship).Return(true);
            propertyWrapper.Stub(wrapper => wrapper.PropertyInfo).Return(GetFakePropertyInfo());
            propertyWrapper.Stub(wrapper => wrapper.HasOneToOneAttribute).Return(true);
            propertyWrapper.Stub(wrapper => wrapper.DeclaringType).Return(GetFakeTypeWrapper());
            OneToOneAutoMapper mapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------

            Assert.IsFalse(propertyWrapper.IsStatic);
            Assert.IsTrue(propertyWrapper.IsPublic);
            Assert.IsFalse(propertyWrapper.HasManyToOneAttribute);
            Assert.IsTrue(propertyWrapper.IsSingleRelationship);
            Assert.IsFalse(propertyWrapper.HasIgnoreAttribute);
            Assert.IsTrue(propertyWrapper.HasOneToOneAttribute);
            Assert.IsNotNull(propertyWrapper.PropertyInfo);
            Assert.IsNotNull(propertyWrapper.DeclaringType);

            Assert.IsTrue(propertyWrapper.IsInherited);
            //---------------Execute Test ----------------------
            var mustBeMapped = mapper.MustBeMapped();
            //---------------Test Result -----------------------
            Assert.IsFalse(mustBeMapped);
        }
        public void Test_Map_WhenOwningBoHasFK_ShouldSetOwningBoHasFKTrue()
        {
            //---------------Set up test pack-------------------
            TypeWrapper ownerType;
            string owningFKPropName;
            PropertyWrapper propertyWrapper = GetPropertyWrapper(out ownerType, out owningFKPropName);

            ownerType.SetHasProperty(owningFKPropName, true);
            propertyWrapper.SetIsSingleRelationship(true);
            OneToOneAutoMapper autoMapper = new OneToOneAutoMapper(propertyWrapper);
            //---------------Assert Precondition----------------
            Assert.IsTrue(autoMapper.OwningBoHasForeignKey);
            Assert.IsTrue(propertyWrapper.IsSingleRelationship);
            //---------------Execute Test ----------------------
            var relationshipDef = autoMapper.MapOneToOne();
            //---------------Test Result -----------------------
            Assert.IsNotNull(relationshipDef);
            Assert.IsInstanceOf(typeof (SingleRelationshipDef), relationshipDef);
            Assert.IsTrue(relationshipDef.OwningBOHasForeignKey);
            Assert.AreEqual(DeleteParentAction.DoNothing, relationshipDef.DeleteParentAction);
        }