Ejemplo n.º 1
0
        public virtual void Properties_can_have_field_cleared(PropertyBase propertyBase, PropertyInfo propertyInfo, string fieldName)
        {
            Assert.Null(propertyBase.GetFieldName());
            Assert.Null(propertyBase.FieldInfo);
            Assert.Same(propertyInfo, propertyBase.MemberInfo);

            propertyBase.SetField(fieldName, ConfigurationSource.Explicit);

            Assert.Equal(fieldName, propertyBase.GetFieldName());
            var fieldInfo = propertyBase.FieldInfo;

            Assert.Equal(fieldName, fieldInfo.Name);
            Assert.Same(propertyInfo ?? (MemberInfo)fieldInfo, propertyBase.MemberInfo);

            propertyBase.SetField(null, ConfigurationSource.Explicit);

            Assert.Null(propertyBase.GetFieldName());
            Assert.Null(propertyBase.FieldInfo);
            Assert.Same(propertyInfo, propertyBase.MemberInfo);

            propertyBase.SetFieldInfo(fieldInfo, ConfigurationSource.Explicit);

            Assert.Equal(fieldName, propertyBase.GetFieldName());
            Assert.Same(propertyInfo ?? (MemberInfo)fieldInfo, propertyBase.MemberInfo);

            propertyBase.SetFieldInfo(null, ConfigurationSource.Explicit);

            Assert.Null(propertyBase.GetFieldName());
            Assert.Null(propertyBase.FieldInfo);
            Assert.Same(propertyInfo, propertyBase.MemberInfo);
        }