Describe("streaming to a destination", func() { var fakeDestination *fakes.FakeArtifactDestination BeforeEach(func() { fakeDestination = new(fakes.FakeArtifactDestination) }) Context("when the resource can stream out", func() { var ( streamedOut io.ReadCloser ) BeforeEach(func() { streamedOut = gbytes.NewBuffer() fakeVersionedSource.StreamOutReturns(streamedOut, nil) }) It("streams the resource to the destination", func() { err := artifactSource.StreamTo(fakeDestination) Ω(err).ShouldNot(HaveOccurred()) Ω(fakeVersionedSource.StreamOutCallCount()).Should(Equal(1)) Ω(fakeVersionedSource.StreamOutArgsForCall(0)).Should(Equal(".")) Ω(fakeDestination.StreamInCallCount()).Should(Equal(1)) dest, src := fakeDestination.StreamInArgsForCall(0) Ω(dest).Should(Equal(".")) Ω(src).Should(Equal(streamedOut)) })