}) JustBeforeEach(func() { var err error request, err = http.NewRequest("", fmt.Sprintf("http://example.com/?:task_guid=%s", taskGuid), nil) Expect(err).NotTo(HaveOccurred()) handler.GetByGuid(responseRecorder, request) }) Context("when the guid is not provided", func() { BeforeEach(func() { taskGuid = "" }) It("does not call TaskByGuid", func() { Expect(fakeBBS.TaskByGuidCallCount()).To(Equal(0)) }) It("responds with a 400 Bad Request", func() { handler.GetByGuid(responseRecorder, request) Expect(responseRecorder.Code).To(Equal(http.StatusBadRequest)) }) It("responds with a relevant error message", func() { var taskError receptor.Error err := json.Unmarshal(responseRecorder.Body.Bytes(), &taskError) Expect(err).NotTo(HaveOccurred()) Expect(taskError).To(Equal(receptor.Error{ Type: receptor.InvalidRequest, Message: "task_guid missing from request",