public void CanonValueFilter() { var canon = new FilterCanonicalizer(); var valueFilter1 = new ValueFilter(Symbol("A.B"), true); var valueFilter2 = new ValueFilter(Symbol("A.B"), true); var valueFilter3 = new ValueFilter(Symbol("A.B")); var valueFilter4 = new ValueFilter(Symbol("B.C")); var canonValueFilter1 = valueFilter1.Canonicalize(canon); var canonValueFilter2 = valueFilter2.Canonicalize(canon); var canonValueFilter3 = valueFilter3.Canonicalize(canon); var canonValueFilter4 = valueFilter4.Canonicalize(canon); Assert.Same(canonValueFilter1, canonValueFilter2); Assert.NotSame(canonValueFilter1, canonValueFilter3); Assert.NotSame(canonValueFilter1, canonValueFilter4); }
public void ValueFilter_Validates_Ok(ComparisonOperator comparison, Comparator comparator) { var filter = new ValueFilter(); filter.Comparator(comparator); filter.ComparisonOperator(comparison); filter.Value("test"); var validator = filter.ToFilterBuild(); var isSpecialCase = filter.ValidateOperationForComparator(comparator, comparison); if (!isSpecialCase) { Assert.Throws <FilterException>(() => validator.Validate()); } else { validator.Validate(); } }
public void MatchKey_ImplicitKey_MatchesPrimaryKey() { var dataRow = new DataRow { FakeDataId = 43, AnotherColumn = "test", AnotherValueColumn = 33, NormalColumn = "foo", NullableColumn = null, NullableValueColumn = null, ValueColumn = 44 }; var target = new ValueFilterSet <DataRow>().MatchKey( dataRow, new DataAnnotationsDefinitionProvider()); Expression <Func <DataRow, int> > valueExpression = row => row.FakeDataId; var expected = new ValueFilter(valueExpression, FilterType.Equality, dataRow.FakeDataId); var actual = target.ValueFilters.First(); Assert.AreEqual(expected, actual); }
/// <inheritdoc /> public override bool IsMatch(T value) { return(ValueFilter.IsMatch(value.Name)); }
/// <summary> /// 设置构造器的参数。 /// </summary> /// <param name="builder"></param> /// <param name="name">参数名称。</param> /// <param name="value">参数值,为null时,自动跳过。</param> /// <param name="filter">过滤器。</param> /// <returns>返回是否操作成功。</returns> protected bool SetBuilderValue(System.Data.Common.DbConnectionStringBuilder builder, string name, object value, ValueFilter filter = null) { if (value == null) { return(false); } try { if (filter != null) { value = filter(value); if (value == null) { return(false); } } if (value is string) { if (string.IsNullOrEmpty((string)value)) { return(false); } } if (name.IndexOf(' ') > -1) { builder[name] = value; } else { FastWrapper.Set(builder, name, value, System.Reflection.BindingFlags.IgnoreCase); } return(true); } catch (System.Exception) { return(false); } }
/// <summary> /// 设置构造器的参数。 /// </summary> /// <param name="builder"></param> /// <param name="values">参数列表。</param> /// <param name="name">标准命名。</param> /// <param name="aliasName">别名。</param> /// <param name="filter">过滤器。</param> protected void SetBuilderValue(System.Data.Common.DbConnectionStringBuilder builder, Collections.Generic.NameValueCollection <object> values, string name, string aliasName, ValueFilter filter = null) { if (SetBuilderValue(builder, aliasName, values[name], filter)) { values.Remove(name); } }
void AppendFilterInfo(StringBuilder sb, Column col, ValueFilter vf) { sb.AppendFormat("Column [{0}]: ({1} values selected)\r\n", col.Name, vf.ShowValues.Length); }
private Expression <Func <RBaseScreener, bool> > GetPredicate <T>(ValueFilter <T> filter) { return(GetPredicate(filter.PropertyName, filter.Operation, filter.Value)); }
public ValueFilterNumbers() { _testDataGeneratedOutsideTimer = ValueFilterString.CreateValueFilterForTesting(TestVolume); }