예제 #1
0
			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))
			})
		})
	})

	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))
예제 #2
0
		client = new(fake_client.FakeClient)
		logger = lagertest.NewTestLogger("test")

		stopper = lrp_stopper.New(cellID, client, logger)
	})

	Describe("StopInstance", func() {
		var returnedError error

		JustBeforeEach(func() {
			returnedError = stopper.StopInstance(actualLRP.ProcessGuid, actualLRP.InstanceGuid)
		})

		It("succeeds", func() {
			Expect(returnedError).NotTo(HaveOccurred())
		})

		Context("when the executor returns an unexpected error", func() {
			BeforeEach(func() {
				client.StopContainerReturns(errors.New("use of closed network connection"))
			})

			It("returns an error", func() {
				Expect(returnedError).To(HaveOccurred())
				Expect(returnedError.Error()).To(ContainSubstring("use of closed network connection"))
			})
		})
	})
})
예제 #3
0
		})

		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() {
			BeforeEach(func() {
				executorClient.StopContainerReturns(errors.New("ka-boom"))
			})

			It("returns false", func() {
				Expect(result).To(BeFalse())
			})

			It("logs the failure", func() {
				Expect(logger).To(gbytes.Say(sessionPrefix + ".failed-stopping-container"))
			})
		})
	})

	Describe("DeleteContainer", func() {
		var result bool