public bool Equals(CustomField other) { if (other == null) { return(false); } return(Id == other.Id && IsFilter == other.IsFilter && IsRequired == other.IsRequired && Multiple == other.Multiple && Searchable == other.Searchable && Visible == other.Visible && CustomizedType.Equals(other.CustomizedType) && DefaultValue.Equals(other.DefaultValue) && FieldFormat.Equals(other.FieldFormat) && MaxLength == other.MaxLength && MinLength == other.MinLength && Name.Equals(other.Name) && Regexp.Equals(other.Regexp) && PossibleValues.Equals(other.PossibleValues) && Roles.Equals(other.Roles) && Trackers.Equals(other.Trackers)); }
public void FromExpression_CanGetMetadataFromCustomizedType() { var instance1 = new CustomizedType(); var instance2 = new CustomizedType(); var baseType = typeof(CustomizedType); // instance property inherits type customization { var instancePropertyExpressions = instance2.InstanceProperty1Expressions().ToList(); var baseInstanceProperty = baseType.GetProperty(nameof(CustomizedType.InstanceProperty1), BindingFlags.Instance | BindingFlags.Public); var actual = SettingMetadata.FromExpression(instancePropertyExpressions.Last()); AreEqual(baseType, actual.Type); AreSame(instance2, actual.Instance); AreEqual(baseInstanceProperty, actual.Member); AreEqual("InstanceProperty1x", actual.MemberName); AssertDefault(actual); } // instance property overrides type customization { var instancePropertyExpressions = instance2.InstanceProperty2Expressions().ToList(); var baseInstanceProperty = baseType.GetProperty(nameof(CustomizedType.InstanceProperty2), BindingFlags.Instance | BindingFlags.Public); var actual = SettingMetadata.FromExpression(instancePropertyExpressions.Last()); AreEqual(baseType, actual.Type); AreSame(instance2, actual.Instance); AreEqual(baseInstanceProperty, actual.Member); AreEqual("InstanceProperty2x", actual.MemberName); //AssertDefault(actual); AreEqual("Prefix2", actual.Prefix); AreEqual("BaseClass2", actual.TypeName); AreEqual("Provider2", actual.ProviderName); AreEqual(SettingNameStrength.High, actual.SettingNameStrength); AreEqual(PrefixHandling.Enable, actual.PrefixHandling); } // static property inherits type customization { var staticPropertyExpressions = instance2.StaticPropertyExpressions().ToList(); var baseStaticProperty = baseType.GetProperty(nameof(CustomizedType.StaticProperty1), BindingFlags.Static | BindingFlags.Public); var actual = SettingMetadata.FromExpression(staticPropertyExpressions.Last()); IsNull(actual.Instance); AreEqual(baseStaticProperty, actual.Member); AreEqual("StaticProperty1x", actual.MemberName); AssertDefault(actual); } void AssertDefault(SettingMetadata actual) { // These cases are common to all tests. AreEqual(Namespace, actual.Namespace); IsTrue(actual.Validations.Empty()); IsNull(actual.DefaultValue); AreEqual("Prefix1", actual.Prefix); AreEqual("BaseClass2", actual.TypeName); AreEqual("Provider1", actual.ProviderName); AreEqual(SettingNameStrength.Low, actual.SettingNameStrength); AreEqual(PrefixHandling.Enable, actual.PrefixHandling); } }