public void DateTimeTyped() { var members = TypeAccessor.Create(typeof(FilteredInType)).GetMembers().ToDictionary(m => m.Name.ToLower(), m => m); var term = new InFilterTermParser <FilteredInType>("DateField", "(2018-01-03, 2018-06-25, 2018-08-6, 2017-10-30)", members).Parse(); Assert.Equal("DateField", term.PropertyName); var dates = term.Value.ToArray(); Assert.Equal(new DateTime(2018, 1, 3), dates[0]); Assert.Equal(new DateTime(2018, 6, 25), dates[1]); Assert.Equal(new DateTime(2018, 8, 6), dates[2]); Assert.Equal(new DateTime(2017, 10, 30), dates[3]); }
public void General(string field, string inExpression, string[] expected, bool expectArgEx = false, bool expectInvalidOpEx = false) { if (expectArgEx) { Assert.ThrowsAny <ArgumentException>(() => new InFilterTermParser(field, inExpression)); } else if (expectInvalidOpEx) { Assert.ThrowsAny <InvalidOperationException>(() => new InFilterTermParser(field, inExpression).Parse()); } else { var term = new InFilterTermParser(field, inExpression).Parse(); Assert.Equal(field, term.PropertyName); Assert.Equal(expected, term.Value); } }
public void GeneralTyped(string field, string inExpression, object[] expected, bool expectArgEx = false, bool expectInvalidOpEx = false) { if (expectArgEx) { Assert.ThrowsAny <ArgumentException>(() => new InFilterTermParser(field, inExpression)); } else if (expectInvalidOpEx) { Assert.ThrowsAny <InvalidOperationException>(() => new InFilterTermParser(field, inExpression).Parse()); } else { var members = TypeAccessor.Create(typeof(FilteredInType)).GetMembers() .ToDictionary(m => m.Name.ToLower(), m => m); var term = new InFilterTermParser <FilteredInType>(field.ToUpper(), inExpression, members).Parse(); Assert.Equal(field, term.PropertyName); Assert.Equal(expected, term.Value); } }