Example #1
0
							TaskGuid:       "a-staging-guid",
							TaskDefinition: &models.TaskDefinition{Annotation: `"fake-backend"}`},
						}

						fakeDiegoClient.TaskByGuidReturns(stagingTask, nil)
					})

					It("returns StatusInternalServerError", func() {
						Expect(responseRecorder.Code).To(Equal(http.StatusInternalServerError))
					})
				})

				It("increments the counter to track arriving stop staging messages", func() {
					Expect(fakeMetricSender.GetCounter("StagingStopRequestsReceived")).To(Equal(uint64(1)))
				})

				It("cancels the Diego task", func() {
					Expect(fakeDiegoClient.CancelTaskCallCount()).To(Equal(1))
					_, task := fakeDiegoClient.CancelTaskArgsForCall(0)
					Expect(task).To(Equal("a-staging-guid"))
				})

				It("returns an Accepted response", func() {
					Expect(responseRecorder.Code).To(Equal(http.StatusAccepted))
				})

			})
		})
	})
})
						stagingTask := &models.Task{
							TaskGuid:       "a-staging-guid",
							TaskDefinition: &models.TaskDefinition{Annotation: `"fake-backend"}`},
						}

						fakeDiegoClient.TaskByGuidReturns(stagingTask, nil)
					})

					It("returns StatusInternalServerError", func() {
						Expect(responseRecorder.Code).To(Equal(http.StatusInternalServerError))
					})
				})

				It("increments the counter to track arriving stop staging messages", func() {
					Expect(fakeMetricSender.GetCounter("StagingStopRequestsReceived")).To(Equal(uint64(1)))
				})

				It("cancels the Diego task", func() {
					Expect(fakeDiegoClient.CancelTaskCallCount()).To(Equal(1))
					Expect(fakeDiegoClient.CancelTaskArgsForCall(0)).To(Equal("a-staging-guid"))
				})

				It("returns an Accepted response", func() {
					Expect(responseRecorder.Code).To(Equal(http.StatusAccepted))
				})

			})
		})
	})
})
			request, err = http.NewRequest("", "http://example.com?:task_guid=the-task-guid", nil)
			Expect(err).NotTo(HaveOccurred())
		})

		JustBeforeEach(func() {
			handler.Cancel(responseRecorder, request)
		})

		Context("when cancelling the task is successful", func() {
			BeforeEach(func() {
				fakeClient.CancelTaskReturns(nil)
			})

			It("responds with a 200", func() {
				Expect(fakeClient.CancelTaskCallCount()).To(Equal(1))
				Expect(fakeClient.CancelTaskArgsForCall(0)).To(Equal("the-task-guid"))

				Expect(responseRecorder.Code).To(Equal(http.StatusOK))
			})
		})

		Context("when the task cannot be found in the BBS", func() {
			BeforeEach(func() {
				fakeClient.CancelTaskReturns(models.ErrResourceNotFound)
			})

			It("responds with a 404 NOT FOUND", func() {
				Expect(responseRecorder.Code).To(Equal(http.StatusNotFound))
			})

			It("responds with a TaskNotFound error in the body", func() {