It("sends a limit bandwidth request", func() { err := container.LimitBandwidth(garden.BandwidthLimits{ RateInBytesPerSecond: 1, }) Ω(err).ShouldNot(HaveOccurred()) handle, limits := fakeConnection.LimitBandwidthArgsForCall(0) Ω(handle).Should(Equal("some-handle")) Ω(limits).Should(Equal(garden.BandwidthLimits{RateInBytesPerSecond: 1})) }) Context("when the request fails", func() { disaster := errors.New("oh no!") BeforeEach(func() { fakeConnection.LimitBandwidthReturns(garden.BandwidthLimits{}, disaster) }) It("returns the error", func() { err := container.LimitBandwidth(garden.BandwidthLimits{}) Ω(err).Should(Equal(disaster)) }) }) }) Describe("LimitCPU", func() { It("sends a limit cpu request", func() { err := container.LimitCPU(garden.CPULimits{ LimitInShares: 1, }) Ω(err).ShouldNot(HaveOccurred())
Describe("LimitBandwidth", func() { handle := "suitcase" limits := garden.BandwidthLimits{ RateInBytesPerSecond: 234, } var gotLimits garden.BandwidthLimits itRetries(func() error { var err error gotLimits, err = conn.LimitBandwidth(handle, limits) return err }, func(err error) { innerConnection.LimitBandwidthReturns(limits, err) }, func() int { return innerConnection.LimitBandwidthCallCount() }, func() { It("calls through to garden", func() { Ω(innerConnection.LimitBandwidthCallCount()).Should(Equal(1)) calledHandle, calledLimits := innerConnection.LimitBandwidthArgsForCall(0) Ω(calledHandle).Should(Equal(handle)) Ω(calledLimits).Should(Equal(limits)) }) It("returns the limits", func() { Ω(gotLimits).Should(Equal(limits)) }) })