Beispiel #1
0
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")