public void Test1() { var parser = new FiltersParser(); var fastCollection = new FastCollection <TestClassA>(); var parsed = parser.ParsePredicate((TestClassA x) => x.F1 > 3, OperationTargetBuilder.BuildForRoot(fastCollection)); Assert.IsAssignableFrom <ComparisonFilter>(parsed); Assert.AreEqual(ComparisonFilterType.Greater, ((ComparisonFilter)parsed).ComparisonFilterType); Assert.AreEqual(3, ((ComparisonFilter)parsed).Value); Assert.AreSame(fastCollection, ((ComparisonFilter)parsed).OperationTarget.RootFastCollection); }
public void AndCompoundTest() { var parser = new FiltersParser(); var fastCollection = new FastCollection <TestClassA>(); var parsed = parser.ParsePredicate((TestClassA x) => (x.F1 > 3) && (x.F1 <= 10), OperationTargetBuilder.BuildForRoot(fastCollection)); Assert.IsAssignableFrom <CompoundFilter>(parsed); Assert.AreEqual(CompoundFilter.CompoundFilterType.And, ((CompoundFilter)parsed).OperationType); var filter1 = (ComparisonFilter)((CompoundFilter)parsed).Operands.ElementAt(0); Assert.AreEqual(ComparisonFilterType.Greater, filter1.ComparisonFilterType); Assert.AreEqual(3, filter1.Value); var filter2 = (ComparisonFilter)((CompoundFilter)parsed).Operands.ElementAt(1); Assert.AreEqual(ComparisonFilterType.LessOrEqual, filter2.ComparisonFilterType); Assert.AreEqual(10, filter2.Value); }