Esempio n. 1
0
				_, err := container.StreamOut(garden.StreamOutSpec{
					Path: "from",
				})
				Ω(err).Should(Equal(disaster))
			})
		})
	})

	Describe("LimitBandwidth", func() {
		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))
			})
		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))
			})
		})
	})

	Describe("LimitCPU", func() {
		handle := "suitcase"

		limits := garden.CPULimits{
			LimitInShares: 7,