Esempio n. 1
0
		container, err = client.Create(garden.ContainerSpec{})
		Ω(err).ShouldNot(HaveOccurred())
	})

	Describe("Handle", func() {
		It("returns the container's handle", func() {
			Ω(container.Handle()).Should(Equal("some-handle"))
		})
	})

	Describe("Stop", func() {
		It("sends a stop request", func() {
			err := container.Stop(true)
			Ω(err).ShouldNot(HaveOccurred())

			handle, kill := fakeConnection.StopArgsForCall(0)
			Ω(handle).Should(Equal("some-handle"))
			Ω(kill).Should(BeTrue())
		})

		Context("when stopping fails", func() {
			disaster := errors.New("oh no!")

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

			It("returns the error", func() {
				err := container.Stop(true)
				Ω(err).Should(Equal(disaster))
			})
			})
		})
	})

	Describe("Stop", func() {
		itRetries(func() error {
			return conn.Stop("la-contineur", true)
		}, func(err error) {
			innerConnection.StopReturns(err)
		}, func() int {
			return innerConnection.StopCallCount()
		}, func() {
			It("calls through to garden", func() {
				Ω(innerConnection.StopCallCount()).Should(Equal(1))

				handle, kill := innerConnection.StopArgsForCall(0)
				Ω(handle).Should(Equal("la-contineur"))
				Ω(kill).Should(Equal(true))
			})
		})
	})

	Describe("StreamIn", func() {
		BeforeEach(func() {
			durations := make(chan time.Duration, 1)
			durations <- time.Second
			close(durations)

			retryPolicy.DelayForStub = func(failedAttempts uint) (time.Duration, bool) {
				select {
				case d, ok := <-durations: