public void DateTimeTyped()
        {
            var members = TypeAccessor.Create(typeof(FilteredRangeType)).GetMembers()
                          .ToDictionary(m => m.Name.ToLower(), m => m);
            var term = new RangeFilterTermParser <FilteredRangeType>("DateField", "2018-01-03..2018-06-25", members).Parse();

            Assert.Equal("DateField", term.PropertyName);
            Assert.Equal(new DateTime(2018, 1, 3), term.From);
            Assert.Equal(new DateTime(2018, 6, 25), term.To);
        }
 public void General(string field, string rangeExpression, string expectFrom, string expectTo,
                     bool expectArgEx = false, bool expectInvalidOpEx = false)
 {
     if (expectArgEx)
     {
         Assert.ThrowsAny <ArgumentException>(() => new RangeFilterTermParser(field, rangeExpression));
     }
     else if (expectInvalidOpEx)
     {
         Assert.ThrowsAny <InvalidOperationException>(() => new RangeFilterTermParser(field, rangeExpression).Parse());
     }
     else
     {
         var term = new RangeFilterTermParser(field, rangeExpression).Parse();
         Assert.Equal(field, term.PropertyName);
         Assert.Equal(expectFrom, term.From);
         Assert.Equal(expectTo, term.To);
     }
 }
 public void GeneralTyped(string field, string rangeExpression, object expectFrom, object expectTo,
                          bool expectArgEx = false, bool expectInvalidOpEx = false)
 {
     if (expectArgEx)
     {
         Assert.ThrowsAny <ArgumentException>(() => new RangeFilterTermParser(field, rangeExpression));
     }
     else if (expectInvalidOpEx)
     {
         Assert.ThrowsAny <InvalidOperationException>(() => new RangeFilterTermParser(field, rangeExpression).Parse());
     }
     else
     {
         var members = TypeAccessor.Create(typeof(FilteredRangeType)).GetMembers()
                       .ToDictionary(m => m.Name.ToLower(), m => m);
         var term = new RangeFilterTermParser <FilteredRangeType>(field, rangeExpression, members).Parse();
         Assert.Equal(field, term.PropertyName);
         Assert.Equal(expectFrom, term.From);
         Assert.Equal(expectTo, term.To);
     }
 }