Example #1
0
        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);
        }
Example #4
0
 /// <inheritdoc />
 public override bool IsMatch(T value)
 {
     return(ValueFilter.IsMatch(value.Name));
 }
Example #5
0
 /// <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);
     }
 }
Example #6
0
 /// <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);
     }
 }
Example #7
0
 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));
 }
Example #9
0
 public ValueFilterNumbers()
 {
     _testDataGeneratedOutsideTimer = ValueFilterString.CreateValueFilterForTesting(TestVolume);
 }