MCPcopy
hub / github.com/minio/minio-go / TestHttpRespToErrorResponse

Function TestHttpRespToErrorResponse

api-error-response_test.go:32–195  ·  view source on GitHub ↗

Tests validate the Error generator function for http response with error.

(t *testing.T)

Source from the content-addressed store, hash-verified

30
31// Tests validate the Error generator function for http response with error.
32func TestHttpRespToErrorResponse(t *testing.T) {
33 // 'genAPIErrorResponse' generates ErrorResponse for given APIError.
34 // provides a encodable populated response values.
35 genAPIErrorResponse := func(err APIError, bucketName string) ErrorResponse {
36 return ErrorResponse{
37 Code: err.Code,
38 Message: err.Description,
39 BucketName: bucketName,
40 }
41 }
42
43 // Encodes the response headers into XML format.
44 encodeErr := func(response ErrorResponse) []byte {
45 buf := &bytes.Buffer{}
46 buf.WriteString(xml.Header)
47 encoder := xml.NewEncoder(buf)
48 err := encoder.Encode(response)
49 if err != nil {
50 t.Fatalf("error encoding response: %v", err)
51 }
52 return buf.Bytes()
53 }
54
55 // `createErrorResponse` Mocks a generic error response from the server.
56 createErrorResponse := func(statusCode int, body []byte) *http.Response {
57 resp := &http.Response{}
58 resp.StatusCode = statusCode
59 resp.Status = http.StatusText(statusCode)
60 resp.Body = io.NopCloser(bytes.NewBuffer(body))
61 return resp
62 }
63
64 // `createAPIErrorResponse` Mocks XML error response from the server.
65 createAPIErrorResponse := func(APIErr APIError, bucketName string) *http.Response {
66 // generate error response.
67 // response body contains the XML error message.
68 errorResponse := genAPIErrorResponse(APIErr, bucketName)
69 encodedErrorResponse := encodeErr(errorResponse)
70 return createErrorResponse(APIErr.HTTPStatusCode, encodedErrorResponse)
71 }
72
73 // 'genErrResponse' contructs error response based http Status Code
74 genErrResponse := func(resp *http.Response, code, message, bucketName, objectName string) ErrorResponse {
75 errResp := ErrorResponse{
76 StatusCode: resp.StatusCode,
77 Code: code,
78 Message: message,
79 BucketName: bucketName,
80 Key: objectName,
81 RequestID: resp.Header.Get("x-amz-request-id"),
82 HostID: resp.Header.Get("x-amz-id-2"),
83 Region: resp.Header.Get("x-amz-bucket-region"),
84 }
85 return errResp
86 }
87
88 // Generate invalid argument error.
89 genInvalidError := func(message string) error {

Callers

nothing calls this directly

Calls 4

httpRespToErrorResponseFunction · 0.85
xmlDecoderFunction · 0.70
GetMethod · 0.45
SetMethod · 0.45

Tested by

no test coverage detected