@@ -6,7 +6,6 @@ import (
66 "encoding/base64"
77 "encoding/json"
88 "fmt"
9− "io/ioutil"
109 "net/http"
1110
1211 "github.com/bitly/go-simplejson"
@@ -215,8 +214,8 @@ var _ = Describe("Builder suite", func() {
215214
216215 Context("if the request has been completed and then modified", func() {
217216 BeforeEach(func() {
218− _, err := b.Do()
219− Expect(err).ToNot(HaveOccurred())
217+ result := b.Do()
218+ Expect(result.Error()).ToNot(HaveOccurred())
220219
221220 b.WithMethod("POST")
222221 })
@@ -250,25 +249,20 @@ var _ = Describe("Builder suite", func() {
250249
251250func assertSuccessfulRequest(builder func() Builder, expectedRequest testHTTPRequest) {
252251 Context("Do", func() {
253− var resp *http.Response
252+ var result Result
254253
255254 BeforeEach(func() {
256− var err error
257− resp, err = builder().Do()
258− Expect(err).ToNot(HaveOccurred())
255+ result = builder().Do()
256+ Expect(result.Error()).ToNot(HaveOccurred())
259257 })
260258
261259 It("returns a successful status", func() {
262− Expect(resp.StatusCode).To(Equal(http.StatusOK))
260+ Expect(result.StatusCode()).To(Equal(http.StatusOK))
263261 })
264262
265263 It("made the expected request", func() {
266− body, err := ioutil.ReadAll(resp.Body)
267− Expect(err).ToNot(HaveOccurred())
268− resp.Body.Close()
269−
270264 actualRequest := testHTTPRequest{}
271− Expect(json.Unmarshal(body, &actualRequest)).To(Succeed())
265+ Expect(json.Unmarshal(result.Body(), &actualRequest)).To(Succeed())
272266
273267 Expect(actualRequest).To(Equal(expectedRequest))
274268 })
@@ -278,7 +272,7 @@ func assertSuccessfulRequest(builder func() Builder, expectedRequest testHTTPReq
278272 var actualRequest testHTTPRequest
279273
280274 BeforeEach(func() {
281− Expect(builder().UnmarshalInto(&actualRequest)).To(Succeed())
275+ Expect(builder().Do().UnmarshalInto(&actualRequest)).To(Succeed())
282276 })
283277
284278 It("made the expected request", func() {
@@ -291,7 +285,7 @@ func assertSuccessfulRequest(builder func() Builder, expectedRequest testHTTPReq
291285
292286 BeforeEach(func() {
293287 var err error
294− response, err = builder().UnmarshalJSON()
288+ response, err = builder().Do().UnmarshalJSON()
295289 Expect(err).ToNot(HaveOccurred())
296290 })
297291
@@ -328,16 +322,15 @@ func assertSuccessfulRequest(builder func() Builder, expectedRequest testHTTPReq
328322func assertRequestError(builder func() Builder, errorMessage string) {
329323 Context("Do", func() {
330324 It("returns an error", func() {
331− resp, err := builder().Do()
332− Expect(err).To(MatchError(ContainSubstring(errorMessage)))
333− Expect(resp).To(BeNil())
325+ result := builder().Do()
326+ Expect(result.Error()).To(MatchError(ContainSubstring(errorMessage)))
334327 })
335328 })
336329
337330 Context("UnmarshalInto", func() {
338331 It("returns an error", func() {
339332 var actualRequest testHTTPRequest
340− err := builder().UnmarshalInto(&actualRequest)
333+ err := builder().Do().UnmarshalInto(&actualRequest)
341334 Expect(err).To(MatchError(ContainSubstring(errorMessage)))
342335
343336 // Should be empty
@@ -347,7 +340,7 @@ func assertRequestError(builder func() Builder, errorMessage string) {
347340
348341 Context("UnmarshalJSON", func() {
349342 It("returns an error", func() {
350− resp, err := builder().UnmarshalJSON()
343+ resp, err := builder().Do().UnmarshalJSON()
351344 Expect(err).To(MatchError(ContainSubstring(errorMessage)))
352345 Expect(resp).To(BeNil())
353346 })
@@ -357,16 +350,15 @@ func assertRequestError(builder func() Builder, errorMessage string) {
357350func assertJSONError(builder func() Builder, errorMessage string) {
358351 Context("Do", func() {
359352 It("does not return an error", func() {
360− resp, err := builder().Do()
361− Expect(err).To(BeNil())
362− Expect(resp).ToNot(BeNil())
353+ result := builder().Do()
354+ Expect(result.Error()).To(BeNil())
363355 })
364356 })
365357
366358 Context("UnmarshalInto", func() {
367359 It("returns an error", func() {
368360 var actualRequest testHTTPRequest
369− err := builder().UnmarshalInto(&actualRequest)
361+ err := builder().Do().UnmarshalInto(&actualRequest)
370362 Expect(err).To(MatchError(ContainSubstring(errorMessage)))
371363
372364 // Should be empty
@@ -376,7 +368,7 @@ func assertJSONError(builder func() Builder, errorMessage string) {
376368
377369 Context("UnmarshalJSON", func() {
378370 It("returns an error", func() {
379− resp, err := builder().UnmarshalJSON()
371+ resp, err := builder().Do().UnmarshalJSON()
380372 Expect(err).To(MatchError(ContainSubstring(errorMessage)))
381373 Expect(resp).To(BeNil())
382374 })