public void TestMultipleCases() { var filterRequests = new List <FilterRequest> { new FilterRequest("p1", FilterType.Equals, "p1"), new FilterRequest("p3", FilterType.Contains, "p3"), new FilterRequest("p4", FilterType.LessThan, "p4"), new FilterRequest("p5", FilterType.GreaterThan, "p5"), new FilterRequest("p6", FilterType.LessThanOrEqual, "p6"), new FilterRequest("p7", FilterType.GreaterThanOrEqual, "p7"), }; var context = new HttpContextStorage(); foreach (var filterRequest in filterRequests) { var prefix = FilterByClientRequestInterpreter.FilterTypeMap .Where(p => p.Value == filterRequest.FilterType) .Select(p => p.Key) .First(); context.SetValue(filterRequest.Property, $"{prefix}{filterRequest.Filter}"); } var interpreter = new FilterByClientRequestInterpreter( context, new MockPropertyNameResolver()); var result = interpreter .ParseRequestQuery(filterRequests.Select(r => r.Property).ToList()) .ToList(); foreach (var filterRequest in filterRequests) { Assert.Contains(filterRequest, result, new PropertyComparer <FilterRequest>()); } }
public void TestEmptyCase() { var interpreter = new FilterByClientRequestInterpreter( new HttpContextStorage(), new MockPropertyNameResolver()); var result = interpreter.ParseRequestQuery(new[] { "p1", "p2" }); Assert.Empty(result); }
public void TestEquals() { var interpreter = new FilterByClientRequestInterpreter( new HttpContextStorage().SetValue(Property.ToLower(), $"={Filter}"), new MockPropertyNameResolver()); var result = interpreter.ParseRequestQuery(new[] { Property }).ToList(); Assert.Single(result); var request = result.First(); Assert.Equal(FilterType.Equals, request.FilterType); Assert.Equal(Property, request.Property); Assert.Equal(Filter, request.Filter); }
// ReSharper disable once UnusedParameter.Local // ReSharper disable once ParameterOnlyUsedForPreconditionCheck.Local private void TestSingleFilterCase(string filterPrefix, FilterType expectedType) { var interpreter = new FilterByClientRequestInterpreter( new HttpContextStorage().SetValue(Property.ToLower(), $"{filterPrefix}{Filter}"), new MockPropertyNameResolver()); var result = interpreter.ParseRequestQuery(new[] { Property }).ToList(); Assert.Single(result); var request = result.First(); Assert.Equal(expectedType, request.FilterType); Assert.Equal(Property, request.Property); Assert.Equal(Filter, request.Filter); }