values := make(url.Values) values.Set(":process_guid", processGuid) values.Set(":instance_guid", instanceGuid) req.URL.RawQuery = values.Encode() }) Context("and StopContainer succeeds", func() { It("responds with 202 Accepted", func() { Expect(resp.Code).To(Equal(http.StatusAccepted)) }) It("eventually stops the instance", func() { Eventually(fakeClient.StopContainerCallCount).Should(Equal(1)) processGuid, instanceGuid := fakeClient.StopContainerArgsForCall(0) 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)) }) }) })
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")) }) }) Context("when stopping fails", func() {