MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestErrorAsHTTPStatus

Function TestErrorAsHTTPStatus

base/error_test.go:37–142  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

35}
36
37func TestErrorAsHTTPStatus(t *testing.T) {
38 code, text := ErrorAsHTTPStatus(nil)
39 assert.Equal(t, http.StatusOK, code)
40 assert.Equal(t, http.StatusText(http.StatusOK), text)
41
42 code, text = ErrorAsHTTPStatus(gocb.ErrDocumentNotFound)
43 assert.Equal(t, http.StatusNotFound, code)
44 assert.Equal(t, "missing", text)
45
46 code, text = ErrorAsHTTPStatus(gocb.ErrDocumentExists)
47 assert.Equal(t, http.StatusConflict, code)
48 assert.Equal(t, "Conflict", text)
49
50 code, text = ErrorAsHTTPStatus(gocb.ErrTimeout)
51 assert.Equal(t, http.StatusServiceUnavailable, code)
52 assert.Equal(t, "Database timeout error (gocb.ErrTimeout)", text)
53
54 code, text = ErrorAsHTTPStatus(gocb.ErrOverload)
55 assert.Equal(t, http.StatusServiceUnavailable, code)
56 assert.Equal(t, "Database server is over capacity (gocb.ErrOverload)", text)
57
58 code, text = ErrorAsHTTPStatus(gocb.ErrTemporaryFailure)
59 assert.Equal(t, http.StatusServiceUnavailable, code)
60 assert.Equal(t, "Database server is over capacity (gocb.ErrTemporaryFailure)", text)
61
62 code, text = ErrorAsHTTPStatus(gocb.ErrValueTooLarge)
63 assert.Equal(t, http.StatusRequestEntityTooLarge, code)
64 assert.Equal(t, "Document too large!", text)
65
66 code, text = ErrorAsHTTPStatus(ErrViewTimeoutError)
67 assert.Equal(t, http.StatusServiceUnavailable, code)
68 assert.Equal(t, ErrViewTimeoutError.Error(), text)
69
70 fakeHTTPError := &HTTPError{Status: http.StatusForbidden, Message: http.StatusText(http.StatusForbidden)}
71 code, text = ErrorAsHTTPStatus(fakeHTTPError)
72 assert.Equal(t, http.StatusForbidden, code)
73 assert.Equal(t, http.StatusText(http.StatusForbidden), text)
74
75 fakeMCResponse := &gomemcached.MCResponse{Status: gomemcached.KEY_ENOENT}
76 code, text = ErrorAsHTTPStatus(fakeMCResponse)
77 assert.Equal(t, http.StatusNotFound, code)
78 assert.Equal(t, "missing", text)
79
80 fakeMCResponse = &gomemcached.MCResponse{Status: gomemcached.KEY_EEXISTS}
81 code, text = ErrorAsHTTPStatus(fakeMCResponse)
82 assert.Equal(t, http.StatusConflict, code)
83 assert.Equal(t, "Conflict", text)
84
85 fakeMCResponse = &gomemcached.MCResponse{Status: gomemcached.E2BIG}
86 code, text = ErrorAsHTTPStatus(fakeMCResponse)
87 assert.Equal(t, http.StatusRequestEntityTooLarge, code)
88 assert.Equal(t, "Too Large: "+string(fakeMCResponse.Body), text)
89
90 fakeMCResponse = &gomemcached.MCResponse{Status: gomemcached.TMPFAIL}
91 code, text = ErrorAsHTTPStatus(fakeMCResponse)
92 assert.Equal(t, http.StatusServiceUnavailable, code)
93 assert.Equal(t, "Database server is over capacity (gomemcached.TMPFAIL)", text)
94

Callers

nothing calls this directly

Calls 6

ErrorMethod · 0.95
ErrorMethod · 0.95
ErrorAsHTTPStatusFunction · 0.85
StringMethod · 0.65
EqualMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected