service_test.go 1.1 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 TestNamedService_Do(t *testing.T) {
  9. svr := httptest.NewServer(http.RedirectHandler("/foo", http.StatusMovedPermanently))
  10. req, err := http.NewRequest(http.MethodGet, svr.URL, nil)
  11. assert.Nil(t, err)
  12. service := NewService("foo")
  13. _, err = service.Do(req)
  14. // too many redirects
  15. assert.NotNil(t, err)
  16. }
  17. func TestNamedService_Get(t *testing.T) {
  18. svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  19. }))
  20. service := NewService("foo")
  21. resp, err := service.Get(svr.URL, func(cli *http.Client) {
  22. cli.Transport = http.DefaultTransport
  23. })
  24. assert.Nil(t, err)
  25. assert.Equal(t, http.StatusOK, resp.StatusCode)
  26. }
  27. func TestNamedService_Post(t *testing.T) {
  28. svr := httptest.NewServer(http.NotFoundHandler())
  29. service := NewService("foo")
  30. _, err := service.Post("tcp://bad request", "application/json", nil)
  31. assert.NotNil(t, err)
  32. resp, err := service.Post(svr.URL, "application/json", nil)
  33. assert.Nil(t, err)
  34. assert.Equal(t, http.StatusNotFound, resp.StatusCode)
  35. }