public void QueryStringScraper_should_support_types( string method, string name, Type type) { // arrange var routeInformation = new RouteInformation { RouteTemplate = "route" }; // will not support for get a list as querystring var description = new ControllerActionDescriptor { MethodInfo = typeof(FakeController).GetMethod(method) }; // act QueryStringScraper.CompleteQueryStringRequiredParams(routeInformation, description); // assert Assert.Single(routeInformation.QueryParams); Assert.Equal(name, routeInformation.QueryParams.First().Key); Assert.Equal(type, routeInformation.QueryParams.First().Value); }
public void QueryStringScraper_should_ignore_complex_nested_items_in_a_complex_item() { // arrange var routeInformation = new RouteInformation { RouteTemplate = "NestedComplexFilter" }; var description = new ControllerActionDescriptor { MethodInfo = typeof(FakeController).GetMethod("NestedComplexFilter") }; // act QueryStringScraper.CompleteQueryStringRequiredParams(routeInformation, description); // assert Assert.Equal(3, routeInformation.QueryParams.Count); }
public void QueryStringScraper_should_ignore_route_constraints() { // arrange var routeInformation = new RouteInformation { RouteTemplate = "/api{id}" }; var description = new ControllerActionDescriptor { MethodInfo = typeof(FakeController).GetMethod("SingleRouteParamInt") }; // act QueryStringScraper.CompleteQueryStringRequiredParams(routeInformation, description); // assert Assert.Empty(routeInformation.QueryParams); }
public void QueryStringScraper_should_ignore_if_type_is_not_supported() { // arrange var routeInformation = new RouteInformation { RouteTemplate = "UnsupportedQueryString" }; // will not support for get a list as querystring var description = new ControllerActionDescriptor { MethodInfo = typeof(FakeController).GetMethod("UnsupportedQueryString") }; // act QueryStringScraper.CompleteQueryStringRequiredParams(routeInformation, description); // assert Assert.Empty(routeInformation.QueryParams); }
public void QueryStringScraper_should_support_complex_get_params_marked_with_from_query() { // arrange var routeInformation = new RouteInformation { RouteTemplate = "ComplexFilter" }; var description = new ControllerActionDescriptor { MethodInfo = typeof(FakeController).GetMethod("ComplexFilter") }; // act QueryStringScraper.CompleteQueryStringRequiredParams(routeInformation, description); // assert Assert.Equal(3, routeInformation.QueryParams.Count); // property count of ComplexFilter Assert.Single(routeInformation.QueryParams.Where(r => r.Key == "Name" && r.Value == typeof(string))); Assert.Single(routeInformation.QueryParams.Where(r => r.Key == "Id" && r.Value == typeof(int))); Assert.Single(routeInformation.QueryParams.Where(r => r.Key == "Date" && r.Value == typeof(DateTime))); }
public void QueryStringScraper_should_ignore_if_attribute_is_saved_as_query_param() { // arrange var routeInformation = new RouteInformation { RouteTemplate = "/api/{id}", QueryParams = new Dictionary <string, Type> { ["id"] = typeof(string) } }; var description = new ControllerActionDescriptor { MethodInfo = typeof(FakeController).GetMethod("SingleRouteParamInt") }; // act QueryStringScraper.CompleteQueryStringRequiredParams(routeInformation, description); // assert Assert.Single(routeInformation.QueryParams); }