public void In(string expression, string expectField, FilterOperators?expectOperator, string[] expectedValues)
        {
            var term = new FilterTermParser(expression).Parse() as InFilterTerm;

            Assert.NotNull(term);
            Assert.Equal(expectField, term.PropertyName);
            Assert.Equal(expectOperator, term.Operator);
            Assert.Equal(expectedValues, term.Value);
        }
        public void Range(string expression, string expectField, FilterOperators?expectOperator, string expectFrom,
                          string expectTo)
        {
            var term = new FilterTermParser(expression).Parse() as RangeFilterTerm;

            Assert.NotNull(term);
            Assert.Equal(expectField, term.PropertyName);
            Assert.Equal(expectOperator, term.Operator);
            Assert.Equal(expectFrom, term.From);
            Assert.Equal(expectTo, term.To);
        }
        public void InTyped(string expression, string expectField, FilterOperators?expectOperator, object[] expectedValues)
        {
            var members = TypeAccessor.Create(typeof(FilteredType)).GetMembers()
                          .ToDictionary(m => m.Name.ToLower(), m => m);

            var term = new FilterTermParser <FilteredType>(expression, members).Parse() as InFilterTerm;

            Assert.NotNull(term);
            Assert.Equal(expectField, term.PropertyName);
            Assert.Equal(expectOperator, term.Operator);
            Assert.Equal(expectedValues, term.Value);
        }
 public void Basic(string expression, string expectField, FilterOperators?expectedOperator, string expectedValue,
                   bool expectArgEx = false, bool expectInvalidOpEx = false)
 {
     if (expectArgEx)
     {
         Assert.ThrowsAny <ArgumentException>(() => new FilterTermParser(expression));
     }
     else if (expectInvalidOpEx)
     {
         Assert.ThrowsAny <InvalidOperationException>(() => new FilterTermParser(expression).Parse());
     }
     else
     {
         var term = new FilterTermParser(expression).Parse();
         Assert.Equal(expectField, term.PropertyName);
         Assert.Equal(expectedOperator, term.Operator);
         Assert.Equal(expectedValue, term.Value);
     }
 }
        public void BasicTyped(string expression, string expectField, FilterOperators?expectedOperator,
                               object expectedValue, bool expectArgEx = false, bool expectInvalidOpEx = false)
        {
            var members = TypeAccessor.Create(typeof(FilteredType)).GetMembers()
                          .ToDictionary(m => m.Name.ToLower(), m => m);

            if (expectArgEx)
            {
                Assert.ThrowsAny <ArgumentException>(() => new FilterTermParser <FilteredType>(expression, members));
            }
            else if (expectInvalidOpEx)
            {
                Assert.ThrowsAny <InvalidOperationException>(() =>
                                                             new FilterTermParser <FilteredType>(expression, members).Parse());
            }
            else
            {
                var term = new FilterTermParser <FilteredType>(expression, members).Parse();
                Assert.Equal(expectField, term.PropertyName);
                Assert.Equal(expectedOperator, term.Operator);
                Assert.Equal(expectedValue, term.Value);
            }
        }