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