Expect(processGuid).To(Equal(processGuid)) Expect(instanceGuid).To(Equal(instanceGuid)) }) }) Context("but StopContainer fails", func() { BeforeEach(func() { fakeClient.StopContainerReturns(errors.New("fail")) }) It("responds with 500 Internal Server Error", func() { Expect(resp.Code).To(Equal(http.StatusInternalServerError)) }) }) }) Context("when the request is invalid", func() { BeforeEach(func() { req.Body = ioutil.NopCloser(bytes.NewBufferString("foo")) }) It("responds with 400 Bad Request", func() { Expect(resp.Code).To(Equal(http.StatusBadRequest)) }) It("does not attempt to stop the instance", func() { Expect(fakeClient.StopContainerCallCount()).To(Equal(0)) }) }) })
It("logs the failure", func() { Expect(logger).To(gbytes.Say(sessionPrefix + ".failed-deleting-container")) }) }) }) }) Describe("StopContainer", func() { var result bool JustBeforeEach(func() { result = containerDelegate.StopContainer(logger, expectedGuid) }) It("stops the container", func() { Expect(executorClient.StopContainerCallCount()).To(Equal(1)) _, containerGuid := executorClient.StopContainerArgsForCall(0) Expect(containerGuid).To(Equal(expectedGuid)) }) Context("when stopping succeeds", func() { It("returns true", func() { Expect(result).To(BeTrue()) }) It("logs the stopping", func() { Expect(logger).To(gbytes.Say(sessionPrefix + ".stopping-container")) Expect(logger).To(gbytes.Say(sessionPrefix + ".succeeded-stopping-container")) }) })