public static IRouteBuilder OnGet(this IRouteBuilder builder,
                                      string template,
                                      string contentType,
                                      string content)
    {
        builder.MapGet(template, (req, resp, route) =>
        {
            var verb = new MockServerHttpVerb()
            {
                ContentType = contentType,
                Content     = content
            };

            return(Content(resp, verb));
        });

        return(builder);
    }
    public static IRouteBuilder OnGet(this IRouteBuilder builder,
                                      string template,
                                      string contentType,
                                      Func <HttpRequest, HttpResponse, RouteData, string> gen)
    {
        builder.MapGet(template, (req, resp, route) =>
        {
            string content = gen(req, resp, route);
            var verb       = new MockServerHttpVerb()
            {
                ContentType = contentType,
                Content     = content
            };

            return(Content(resp, verb));
        });

        return(builder);
    }
    public static IRouteBuilder OnGet <T>(this IRouteBuilder builder,
                                          string template,
                                          string contentType,
                                          Func <RouteData, T> gen)
    {
        builder.MapGet(template, (req, resp, route) =>
        {
            var body       = gen(route);
            string content = JsonConvert.SerializeObject(body);

            var verb = new MockServerHttpVerb()
            {
                ContentType = contentType,
                Content     = content
            };

            return(Content(resp, verb));
        });

        return(builder);
    }
    public static IRouteBuilder On(this IRouteBuilder builder,
                                   string method,
                                   string template,
                                   string contentType,
                                   object content, Dictionary <string, string> headers = null, int statusCode = 200)
    {
        var verb = new MockServerHttpVerb()
        {
            Content     = content,
            ContentType = contentType,
            Headers     = headers ?? new Dictionary <string, string>(),
            StatusCode  = statusCode
        };

        builder.MapVerb(method, template, (req, resp, route) =>
        {
            return(Content(resp, verb));
        });

        return(builder);
    }