var _ = Describe("Client", func() { var ( fakeHTTPClient *fakehttp.FakeClient config davconf.Config client Client ) BeforeEach(func() { fakeHTTPClient = fakehttp.NewFakeClient() client = NewClient(config, fakeHTTPClient) }) Describe("Get", func() { It("returns the response body from the given path", func() { fakeHTTPClient.StatusCode = 200 fakeHTTPClient.SetMessage("response") responseBody, err := client.Get("/") Expect(err).NotTo(HaveOccurred()) buf := make([]byte, 1024) n, _ := responseBody.Read(buf) Expect(string(buf[0:n])).To(Equal("response")) }) Context("when the http request fails", func() { BeforeEach(func() { fakeHTTPClient.Error = errors.New("") }) It("returns err", func() {
) BeforeEach(func() { fakeClient = fakehttp.NewFakeClient() logger := boshlog.NewLogger(boshlog.LevelNone) request = &http.Request{ Body: ioutil.NopCloser(strings.NewReader("fake-request-body")), } requestRetryable = NewRequestRetryable(request, fakeClient, logger) }) It("calls Do on the delegate", func() { fakeClient.SetMessage("fake-response-body") fakeClient.StatusCode = 200 _, err := requestRetryable.Attempt() Expect(err).ToNot(HaveOccurred()) resp := requestRetryable.Response() Expect(readString(resp.Body)).To(Equal("fake-response-body")) Expect(resp.StatusCode).To(Equal(200)) Expect(fakeClient.CallCount).To(Equal(1)) Expect(fakeClient.Requests).To(ContainElement(request)) }) Context("when request returns an error", func() { BeforeEach(func() { fakeClient.Error = errors.New("fake-response-error")