})

		Describe("Setter", func() {
			var requestBody string
			BeforeEach(func() {
				server.AppendHandlers(
					ghttp.CombineHandlers(
						ghttp.VerifyRequest("POST", "/api/containers/containerhandle/grace_time"),
						ghttp.RespondWith(200, `{}`),
						func(w http.ResponseWriter, req *http.Request) {
							body, err := ioutil.ReadAll(req.Body)
							req.Body.Close()
							Expect(err).ShouldNot(HaveOccurred())
							requestBody = string(body)
						},
					),
				)
			})
			It("sets the gracetime", func() {
				container := netContainer.NewContainer(client, "containerhandle", logger)

				err := container.SetGraceTime(time.Second)
				Expect(err).NotTo(HaveOccurred())

				Expect(server.ReceivedRequests()).Should(HaveLen(1))
				Expect(requestBody).Should(Equal(`{"grace_time":1000000000}`))
			})
		})
	})
})
示例#2
0
			Ω(rule.Networks).Should(HaveLen(1))
			Ω(rule.Networks[0]).Should(Equal(garden.IPRange{Start: net.ParseIP("1.2.3.4"), End: net.ParseIP("1.2.3.4")}))

			Ω(rule.Ports).Should(HaveLen(1))
			Ω(rule.Ports[0]).Should(Equal(garden.PortRange{Start: 12, End: 24}))

			Ω(rule.Log).Should(Equal(true))
		})
	})

	Describe(("GraceTime"), func() {
		It("send the set grace time request", func() {
			graceTime := time.Second * 5

			Ω(container.SetGraceTime(graceTime)).Should(Succeed())

			Ω(fakeConnection.SetGraceTimeCallCount()).Should(Equal(1))
			handle, actualGraceTime := fakeConnection.SetGraceTimeArgsForCall(0)
			Ω(handle).Should(Equal("some-handle"))
			Ω(actualGraceTime).Should(Equal(graceTime))
		})

		Context("when the request fails", func() {
			disaster := errors.New("banana")

			BeforeEach(func() {
				fakeConnection.SetGraceTimeReturns(disaster)
			})

			It("returns the error", func() {