errors_test.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package errors
  2. import (
  3. "fmt"
  4. "github.com/stretchr/testify/assert"
  5. "net/http"
  6. "testing"
  7. )
  8. func newError(errorname string) error {
  9. return fmt.Errorf("test%v", errorname)
  10. }
  11. func TestErrors(t *testing.T) {
  12. errmsg := newError("apiError")
  13. err := apiError{
  14. error: errmsg,
  15. statusCode: 0,
  16. }
  17. assert.Equal(t, err.HTTPErrorStatusCode(), err.statusCode)
  18. errmsg = newError("ErrorWithStatusCode")
  19. errcode := 1
  20. serr := NewErrorWithStatusCode(errmsg, errcode)
  21. apierr, ok := serr.(apiError)
  22. if !ok {
  23. t.Fatal("excepted err is apiError type")
  24. }
  25. assert.Equal(t, errcode, apierr.statusCode)
  26. errmsg = newError("NewBadRequestError")
  27. baderr := NewBadRequestError(errmsg)
  28. apierr, ok = baderr.(apiError)
  29. if !ok {
  30. t.Fatal("excepted err is apiError type")
  31. }
  32. assert.Equal(t, http.StatusBadRequest, apierr.statusCode)
  33. errmsg = newError("RequestForbiddenError")
  34. ferr := NewRequestForbiddenError(errmsg)
  35. apierr, ok = ferr.(apiError)
  36. if !ok {
  37. t.Fatal("excepted err is apiError type")
  38. }
  39. assert.Equal(t, http.StatusForbidden, apierr.statusCode)
  40. errmsg = newError("RequestNotFoundError")
  41. nerr := NewRequestNotFoundError(errmsg)
  42. apierr, ok = nerr.(apiError)
  43. if !ok {
  44. t.Fatal("excepted err is apiError type")
  45. }
  46. assert.Equal(t, http.StatusNotFound, apierr.statusCode)
  47. errmsg = newError("RequestConflictError")
  48. cerr := NewRequestConflictError(errmsg)
  49. apierr, ok = cerr.(apiError)
  50. if !ok {
  51. t.Fatal("excepted err is apiError type")
  52. }
  53. assert.Equal(t, http.StatusConflict, apierr.statusCode)
  54. }