private static List <HttpOperationParameterInfo> GetInputParameters(IHttpRoute httpRoute)
        {
            var parameters       = new List <HttpOperationParameterInfo>();
            var httpRouteFactory = new HttpRouteFactory();
            var pathParameters   = httpRouteFactory.GetRouteParameters(httpRoute.RouteTemplate).ToList();

            foreach (var constraint in httpRoute.Constraints)
            {
                var             httpConstraint  = constraint.Value as IHttpRouteConstraint;
                SwaggerDataType?swaggerDataType = httpConstraint.ToSwaggerDataType();
                if (swaggerDataType != null && httpConstraint.GetType() != typeof(HttpMethodConstraint))
                {
                    var parameter = new HttpOperationParameterInfo()
                    {
                        DataType = swaggerDataType.ToString().ToLowerInvariant(),
                        Name     = constraint.Key
                    };
                    parameters.Add(parameter);
                    pathParameters.Remove(constraint.Key);
                }
            }

            parameters.AddRange(pathParameters.Select(p =>
                                                      new HttpOperationParameterInfo()
            {
                DataType = SwaggerDataType.String.ToString().ToLowerInvariant(),
                Name     = p
            }));

            return(parameters);
        }
        public static void GetRouteParameters_ReturnsExpectedResult(string routeTemplate, string expected)
        {
            HttpRouteFactory routeFactory = new HttpRouteFactory("api");
            var parameters = routeFactory.GetRouteParameters(routeTemplate);
            var result     = string.Join(",", parameters);

            Assert.Equal(expected, result);
        }