stopAppHandler := handlers.NewStopAppHandler(logger, fakeBBS) stopAppHandler.StopApp(responseRecorder, request) }) It("invokes the bbs to delete the app", func() { Expect(fakeBBS.RemoveDesiredLRPCallCount()).To(Equal(1)) Expect(fakeBBS.RemoveDesiredLRPArgsForCall(0)).To(Equal("process-guid")) }) It("responds with 202 Accepted", func() { Expect(responseRecorder.Code).To(Equal(http.StatusAccepted)) }) Context("when the bbs fails", func() { BeforeEach(func() { fakeBBS.RemoveDesiredLRPReturns(errors.New("oh no")) }) It("responds with a ServiceUnavailabe error", func() { Expect(responseRecorder.Code).To(Equal(http.StatusServiceUnavailable)) }) }) Context("when the process guid is missing", func() { BeforeEach(func() { request.Form.Del(":process_guid") }) It("does not call the bbs", func() { Expect(fakeBBS.RemoveDesiredLRPCallCount()).To(Equal(0)) })
bbsClient.DesireLRPReturns(errors.New("create failed!")) }) It("does not update the domain", func() { Consistently(bbsClient.UpsertDomainCallCount).Should(Equal(0)) }) It("sends all the other updates", func() { Eventually(bbsClient.DesireLRPCallCount).Should(Equal(1)) Eventually(bbsClient.RemoveDesiredLRPCallCount).Should(Equal(1)) }) }) Context("and the delete request fails", func() { BeforeEach(func() { bbsClient.RemoveDesiredLRPReturns(errors.New("delete failed!")) }) It("sends all the other updates", func() { Eventually(bbsClient.DesireLRPCallCount).Should(Equal(1)) Eventually(bbsClient.RemoveDesiredLRPCallCount).Should(Equal(1)) Eventually(bbsClient.UpsertDomainCallCount).Should(Equal(1)) }) }) }) Context("and the differ detects stale lrps", func() { var ( expectedEtag = "new-etag" expectedInstances = int32(0)