1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package errdefs
- import (
- "fmt"
- "net/http"
- "testing"
- )
- func TestFromStatusCode(t *testing.T) {
- testErr := fmt.Errorf("some error occurred")
- testCases := []struct {
- err error
- status int
- check func(error) bool
- }{
- {
- err: testErr,
- status: http.StatusNotFound,
- check: IsNotFound,
- },
- {
- err: testErr,
- status: http.StatusBadRequest,
- check: IsInvalidParameter,
- },
- {
- err: testErr,
- status: http.StatusConflict,
- check: IsConflict,
- },
- {
- err: testErr,
- status: http.StatusUnauthorized,
- check: IsUnauthorized,
- },
- {
- err: testErr,
- status: http.StatusServiceUnavailable,
- check: IsUnavailable,
- },
- {
- err: testErr,
- status: http.StatusForbidden,
- check: IsForbidden,
- },
- {
- err: testErr,
- status: http.StatusNotModified,
- check: IsNotModified,
- },
- {
- err: testErr,
- status: http.StatusNotImplemented,
- check: IsNotImplemented,
- },
- {
- err: testErr,
- status: http.StatusInternalServerError,
- check: IsSystem,
- },
- {
- err: Unknown(testErr),
- status: http.StatusInternalServerError,
- check: IsUnknown,
- },
- {
- err: DataLoss(testErr),
- status: http.StatusInternalServerError,
- check: IsDataLoss,
- },
- {
- err: Deadline(testErr),
- status: http.StatusInternalServerError,
- check: IsDeadline,
- },
- {
- err: Cancelled(testErr),
- status: http.StatusInternalServerError,
- check: IsCancelled,
- },
- }
- for _, tc := range testCases {
- t.Run(http.StatusText(tc.status), func(t *testing.T) {
- err := FromStatusCode(tc.err, tc.status)
- if !tc.check(err) {
- t.Errorf("unexpected error-type %T", err)
- }
- })
- }
- }
|