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)) }) Context("when streaming out of the versioned source fails", func() { disaster := errors.New("nope") BeforeEach(func() { fakeVersionedSource.StreamOutReturns(nil, disaster) })
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) Expect(err).NotTo(HaveOccurred()) Expect(fakeVersionedSource.StreamOutCallCount()).To(Equal(1)) Expect(fakeVersionedSource.StreamOutArgsForCall(0)).To(Equal(".")) Expect(fakeDestination.StreamInCallCount()).To(Equal(1)) dest, src := fakeDestination.StreamInArgsForCall(0) Expect(dest).To(Equal(".")) Expect(src).To(Equal(streamedOut)) }) Context("when streaming out of the versioned source fails", func() { disaster := errors.New("nope") BeforeEach(func() { fakeVersionedSource.StreamOutReturns(nil, disaster) })