|
@@ -0,0 +1,64 @@
|
|
|
+package errors
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "github.com/stretchr/testify/assert"
|
|
|
+ "net/http"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func newError(errorname string) error {
|
|
|
+
|
|
|
+ return fmt.Errorf("test%v", errorname)
|
|
|
+}
|
|
|
+
|
|
|
+func TestErrors(t *testing.T) {
|
|
|
+ errmsg := newError("apiError")
|
|
|
+ err := apiError{
|
|
|
+ error: errmsg,
|
|
|
+ statusCode: 0,
|
|
|
+ }
|
|
|
+ assert.Equal(t, err.HTTPErrorStatusCode(), err.statusCode)
|
|
|
+
|
|
|
+ errmsg = newError("ErrorWithStatusCode")
|
|
|
+ errcode := 1
|
|
|
+ serr := NewErrorWithStatusCode(errmsg, errcode)
|
|
|
+ apierr, ok := serr.(apiError)
|
|
|
+ if !ok {
|
|
|
+ t.Fatal("excepted err is apiError type")
|
|
|
+ }
|
|
|
+ assert.Equal(t, errcode, apierr.statusCode)
|
|
|
+
|
|
|
+ errmsg = newError("NewBadRequestError")
|
|
|
+ baderr := NewBadRequestError(errmsg)
|
|
|
+ apierr, ok = baderr.(apiError)
|
|
|
+ if !ok {
|
|
|
+ t.Fatal("excepted err is apiError type")
|
|
|
+ }
|
|
|
+ assert.Equal(t, http.StatusBadRequest, apierr.statusCode)
|
|
|
+
|
|
|
+ errmsg = newError("RequestForbiddenError")
|
|
|
+ ferr := NewRequestForbiddenError(errmsg)
|
|
|
+ apierr, ok = ferr.(apiError)
|
|
|
+ if !ok {
|
|
|
+ t.Fatal("excepted err is apiError type")
|
|
|
+ }
|
|
|
+ assert.Equal(t, http.StatusForbidden, apierr.statusCode)
|
|
|
+
|
|
|
+ errmsg = newError("RequestNotFoundError")
|
|
|
+ nerr := NewRequestNotFoundError(errmsg)
|
|
|
+ apierr, ok = nerr.(apiError)
|
|
|
+ if !ok {
|
|
|
+ t.Fatal("excepted err is apiError type")
|
|
|
+ }
|
|
|
+ assert.Equal(t, http.StatusNotFound, apierr.statusCode)
|
|
|
+
|
|
|
+ errmsg = newError("RequestConflictError")
|
|
|
+ cerr := NewRequestConflictError(errmsg)
|
|
|
+ apierr, ok = cerr.(apiError)
|
|
|
+ if !ok {
|
|
|
+ t.Fatal("excepted err is apiError type")
|
|
|
+ }
|
|
|
+ assert.Equal(t, http.StatusConflict, apierr.statusCode)
|
|
|
+
|
|
|
+}
|