public void should_default_to_simple_contains() { var skv = new SimpleKeyValues((key) => _ajaxRequestInput[key], () => _ajaxRequestInput.Select(kvp => kvp.Key)); skv.Has("X-Requested-With").ShouldBeTrue(); skv.Has("x-requested-with").ShouldBeFalse(); }
public void should_use_custom_compare() { var skv = new SimpleKeyValues((key) => _ajaxRequestInput[key], () => _ajaxRequestInput.Select(kvp => kvp.Key), (key,keys) => keys.Contains(key,StringComparer.InvariantCultureIgnoreCase)); skv.Has("X-Requested-With").ShouldBeTrue(); skv.Has("x-requested-with").ShouldBeTrue(); }
private void addValues(RequestDataSource source, Func<string, object> finder, Func<IEnumerable<string>> findKeys) { var values = new SimpleKeyValues(finder, findKeys); var valueSource = new FlatValueSource(values, source.ToString()); //var valueSource = new GenericValueSource(source.ToString(), finder, findKeys); AddValues(valueSource); }
private void addValues(RequestDataSource source, Func <string, object> finder, Func <IEnumerable <string> > findKeys, Func <string, IEnumerable <string>, bool> keyFinder = null) { Func <string, IEnumerable <string>, bool> defaultKeyFinder = (key, keys) => keys.Contains(key); var values = new SimpleKeyValues(finder, findKeys, keyFinder ?? defaultKeyFinder); var valueSource = new FlatValueSource <object>(values, source.ToString()); AddValues(valueSource); }
public SelfHostRequestData(RouteData routeData, HttpRequestMessage request, ICookies cookies) { AddValues(new RouteDataValues(routeData)); var querystring = request.RequestUri.ParseQueryString(); AddValues("Querystring", new NamedKeyValues(querystring)); var formData = request.Content.IsFormData() ? request.Content.ReadAsFormDataAsync().Result : new NameValueCollection(); AddValues(RequestDataSource.Request.ToString(), new NamedKeyValues(formData)); var headers = AggregateKeyValues.For(new HeaderKeyValues(request.Headers), new HeaderKeyValues(request.Content.Headers)); AddValues(RequestDataSource.Header.ToString(), headers); Func<string, IEnumerable<string>, bool> ignoreCaseKeyFinder = (key, keys) => keys.Contains(key, StringComparer.InvariantCultureIgnoreCase); var values = new SimpleKeyValues(key => cookies.Get(key).Value, () => cookies.Request.Select(x => x.Name), ignoreCaseKeyFinder); var valueSource = new FlatValueSource<object>(values, RequestDataSource.Cookie.ToString()); AddValues(valueSource); }