GitHub

Original file line numberDiff line numberDiff line change

@@ -284,3 +284,25 @@ func Test_extractParams(t *testing.T) {

284284

router.ServeHTTP(httptest.NewRecorder(), req)

285285

assert.Equal(t, "1", fields["id"])

286286

}

287+
288+

func Test_extractParamsRawRoute(t *testing.T) {

289+

r, err := http.NewRequest(http.MethodGet, "/users/42/status/online", nil)

290+

assert.NoError(t, err)

291+

r.Header.Set(encoding.ContentTypeHeader, json.Type)

292+

r.Header.Set(encoding.AcceptHeader, json.Type)

293+

var fields map[string]string

294+
295+

proc := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

296+

fields = ExtractParams(r)

297+

})

298+
299+

router := httprouter.New()

300+

route, err := NewRawRouteBuilder("/users/:id/status/:status", proc).MethodGet().Build()

301+

assert.NoError(t, err)

302+

router.HandlerFunc(route.method, route.path, route.handler)

303+

router.ServeHTTP(httptest.NewRecorder(), r)

304+
305+

assert.Equal(t, "42", fields["id"])

306+

assert.Equal(t, "online", fields["status"])

307+
308+

}

Read the original on github.com ↗