requests_test.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package httpc
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestDo(t *testing.T) {
  9. svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  10. }))
  11. defer svr.Close()
  12. _, err := Get("foo", "tcp://bad request")
  13. assert.NotNil(t, err)
  14. resp, err := Get("foo", svr.URL)
  15. assert.Nil(t, err)
  16. assert.Equal(t, http.StatusOK, resp.StatusCode)
  17. }
  18. func TestDoNotFound(t *testing.T) {
  19. svr := httptest.NewServer(http.NotFoundHandler())
  20. defer svr.Close()
  21. _, err := Post("foo", "tcp://bad request", "application/json", nil)
  22. assert.NotNil(t, err)
  23. resp, err := Post("foo", svr.URL, "application/json", nil)
  24. assert.Nil(t, err)
  25. assert.Equal(t, http.StatusNotFound, resp.StatusCode)
  26. }
  27. func TestDoMoved(t *testing.T) {
  28. svr := httptest.NewServer(http.RedirectHandler("/foo", http.StatusMovedPermanently))
  29. defer svr.Close()
  30. req, err := http.NewRequest(http.MethodGet, svr.URL, nil)
  31. assert.Nil(t, err)
  32. _, err = Do("foo", req)
  33. // too many redirects
  34. assert.NotNil(t, err)
  35. }