| 120 | } |
| 121 | |
| 122 | func TestDoRawRequestFailed(t *testing.T) { |
| 123 | status := &metav1.Status{ |
| 124 | Code: http.StatusNotFound, |
| 125 | Status: metav1.StatusFailure, |
| 126 | Reason: metav1.StatusReasonNotFound, |
| 127 | Message: "the server could not find the requested resource", |
| 128 | Details: &metav1.StatusDetails{ |
| 129 | Causes: []metav1.StatusCause{ |
| 130 | {Type: metav1.CauseTypeUnexpectedServerResponse, Message: "unknown"}, |
| 131 | }, |
| 132 | }, |
| 133 | } |
| 134 | expectedBody, _ := runtime.Encode(scheme.Codecs.LegacyCodec(v1.SchemeGroupVersion), status) |
| 135 | fakeHandler := utiltesting.FakeHandler{ |
| 136 | StatusCode: 404, |
| 137 | ResponseBody: string(expectedBody), |
| 138 | T: t, |
| 139 | } |
| 140 | testServer := httptest.NewServer(&fakeHandler) |
| 141 | defer testServer.Close() |
| 142 | |
| 143 | c, err := restClient(testServer) |
| 144 | if err != nil { |
| 145 | t.Fatalf("unexpected error: %v", err) |
| 146 | } |
| 147 | body, err := c.Get().Do().Raw() |
| 148 | |
| 149 | if err == nil || body == nil { |
| 150 | t.Errorf("unexpected non-error: %#v", body) |
| 151 | } |
| 152 | ss, ok := err.(errors.APIStatus) |
| 153 | if !ok { |
| 154 | t.Errorf("unexpected error type %v", err) |
| 155 | } |
| 156 | actual := ss.Status() |
| 157 | if !reflect.DeepEqual(status, &actual) { |
| 158 | t.Errorf("Unexpected mis-match: %s", diff.ObjectReflectDiff(status, &actual)) |
| 159 | } |
| 160 | } |
| 161 | |
| 162 | func TestDoRequestCreated(t *testing.T) { |
| 163 | testServer, fakeHandler, status := testServerEnv(t, 201) |