public void FilterModifier_AddFilterTypeAfterComplexFilter_ThrowsException() { // Arrange var modifier = new FilterModifier <TestFilter>(); modifier.Filter(f => f.Name.Contains("a.s.") || f.Name.Contains("s.r.o.")); // Act + Assert Assert.Throws <InvalidOperationException>(() => modifier.FilterType(FilterType.And)); }
public void FilterModifier_MultipleFiltersAtOnce_ReturnsCorrectQueryParam() { // Arrange var modifier = new FilterModifier <TestFilter>(); Func <TestFilter, FilterExpression> filterExpression1 = (f) => f.Name.Contains("a"); Func <TestFilter, FilterExpression> filterExpression2 = (f) => f.Date.IsLowerThan(DateTime.Now); modifier.Filter(filterExpression1, filterExpression2); modifier.FilterType(FilterType.Or); // Act var queryParams = modifier.GetQueryParameters(); // Assert Assert.AreEqual(2, queryParams.Count); Assert.IsTrue(queryParams.TryGetValue("filter", out var filter)); var filter1 = GetFilterExpression(filterExpression1); var filter2 = GetFilterExpression(filterExpression2); Assert.AreEqual($"{filter1}|{filter2}", filter); Assert.IsTrue(queryParams.TryGetValue("filterType", out var filterType)); Assert.AreEqual("or", filterType); }
/// <summary> /// Filter type for a list. /// </summary> /// <param name="filterType">Filter type.</param> /// <returns>List of models.</returns> public TList FilterType(FilterType filterType) { _filter.FilterType(filterType); return(This); }