コード例 #1
0
			close(durations)

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

		It("calls through to the inner connection", func() {
			reader := &bytes.Buffer{}

			err := conn.StreamIn("beethoven", garden.StreamInSpec{
				Path:      "/dev/sound",
				User:      "******",
				TarStream: reader,
			})
			Ω(err).ShouldNot(HaveOccurred())

			Ω(innerConnection.StreamInCallCount()).Should(Equal(1))
			handle, spec := innerConnection.StreamInArgsForCall(0)
			Ω(handle).Should(Equal("beethoven"))
			Ω(spec.Path).Should(Equal("/dev/sound"))
			Ω(spec.User).Should(Equal("bach"))
			Ω(spec.TarStream).Should(Equal(reader))
		})

		It("does not retry as the other end of the connection may have already started reading the body", func() {
			reader := &bytes.Buffer{}