fakeConnection.StreamInReturns( disaster) }) It("returns the error", func() { err := container.StreamIn(garden.StreamInSpec{ Path: "to", }) Ω(err).Should(Equal(disaster)) }) }) }) Describe("StreamOut", func() { It("sends a stream out request", func() { fakeConnection.StreamOutReturns(ioutil.NopCloser(strings.NewReader("kewl")), nil) reader, err := container.StreamOut(garden.StreamOutSpec{ User: "******", Path: "from", }) bytes, err := ioutil.ReadAll(reader) Ω(err).ShouldNot(HaveOccurred()) Ω(string(bytes)).Should(Equal("kewl")) handle, spec := fakeConnection.StreamOutArgsForCall(0) Ω(handle).Should(Equal("some-handle")) Ω(spec.Path).Should(Equal("from")) Ω(spec.User).Should(Equal("deandra")) })
}) Describe("StreamOut", func() { handle := "suitcase" var gotReader io.ReadCloser itRetries(func() error { var err error gotReader, err = conn.StreamOut(handle, garden.StreamOutSpec{ Path: "/etc/passwd", User: "******", }) return err }, func(err error) { innerConnection.StreamOutReturns(gbytes.NewBuffer(), err) }, func() int { return innerConnection.StreamOutCallCount() }, func() { It("calls through to garden", func() { Ω(innerConnection.StreamOutCallCount()).Should(Equal(1)) calledHandle, calledSpec := innerConnection.StreamOutArgsForCall(0) Ω(calledHandle).Should(Equal(handle)) Ω(calledSpec.Path).Should(Equal("/etc/passwd")) Ω(calledSpec.User).Should(Equal("admin")) }) It("returns the reader", func() { Ω(gotReader).Should(Equal(gbytes.NewBuffer())) })