コード例 #1
0
			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")
			})

			It("is retryable", func() {
				isRetryable, err := requestRetryable.Attempt()
				Expect(err).To(HaveOccurred())
				Expect(err.Error()).To(ContainSubstring("fake-response-error"))
				Expect(isRetryable).To(BeTrue())
			})
		})

		Context("when response status code is not between 200 and 300", func() {
			BeforeEach(func() {
				fakeClient.SetMessage("fake-response-body")
				fakeClient.StatusCode = 404
			})
コード例 #2
0
ファイル: client_test.go プロジェクト: jianqiu/bosh-agent
	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() {
				responseBody, err := client.Get("/")
				Expect(responseBody).To(BeNil())
				Expect(err).To(HaveOccurred())
				Expect(err.Error()).To(ContainSubstring("Getting dav blob /"))
			})
		})

		Context("when the http response code is not 200", func() {
			BeforeEach(func() {
				fakeHTTPClient.StatusCode = 300
				fakeHTTPClient.SetMessage("response")
			})