client_error_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package errors
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestClientError(t *testing.T) {
  7. err := NewClientError("error code", "error message", nil)
  8. assert.Equal(t, "[error code] error message", err.Error())
  9. assert.Equal(t, 400, err.HttpStatus())
  10. assert.Equal(t, "error code", err.ErrorCode())
  11. assert.Equal(t, "error message", err.Message())
  12. clientError, ok := err.(*ClientError)
  13. assert.True(t, ok)
  14. assert.Equal(t, "[error code] error message", clientError.String())
  15. assert.Nil(t, err.OriginError())
  16. }
  17. type OriginError struct {
  18. }
  19. func (err *OriginError) Error() string {
  20. return "The origin error"
  21. }
  22. func TestClientErrorWithOriginError(t *testing.T) {
  23. err := NewClientError("", "error message", &OriginError{})
  24. assert.Equal(t, "[SDK.ClientError] error message\ncaused by:\nThe origin error", err.Error())
  25. assert.Equal(t, 400, err.HttpStatus())
  26. assert.Equal(t, "SDK.ClientError", err.ErrorCode())
  27. assert.Equal(t, "error message", err.Message())
  28. clientError, ok := err.(*ClientError)
  29. assert.True(t, ok)
  30. assert.Equal(t, "[SDK.ClientError] error message\ncaused by:\nThe origin error", clientError.String())
  31. assert.NotNil(t, err.OriginError())
  32. }