restful-route_test.go 845 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package main
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "strings"
  6. "testing"
  7. "github.com/emicklei/go-restful"
  8. )
  9. var (
  10. Result string
  11. )
  12. func TestRouteExtractParameter(t *testing.T) {
  13. // setup service
  14. ws := new(restful.WebService)
  15. ws.Consumes(restful.MIME_XML)
  16. ws.Route(ws.GET("/test/{param}").To(DummyHandler))
  17. restful.Add(ws)
  18. // setup request + writer
  19. bodyReader := strings.NewReader("<Sample><Value>42</Value></Sample>")
  20. httpRequest, _ := http.NewRequest("GET", "/test/THIS", bodyReader)
  21. httpRequest.Header.Set("Content-Type", restful.MIME_XML)
  22. httpWriter := httptest.NewRecorder()
  23. // run
  24. restful.DefaultContainer.ServeHTTP(httpWriter, httpRequest)
  25. if Result != "THIS" {
  26. t.Fatalf("Result is actually: %s", Result)
  27. }
  28. }
  29. func DummyHandler(rq *restful.Request, rp *restful.Response) {
  30. Result = rq.PathParameter("param")
  31. }