Expect(putParams).To(Equal(params)) dest := new(fakes.FakeArtifactDestination) err := putArtifactSource.StreamTo(dest) Expect(err).NotTo(HaveOccurred()) Expect(fakeSource.StreamToCallCount()).To(Equal(1)) sourceDest := fakeSource.StreamToArgsForCall(0) someStream := new(bytes.Buffer) err = sourceDest.StreamIn("foo", someStream) Expect(err).NotTo(HaveOccurred()) Expect(dest.StreamInCallCount()).To(Equal(1)) destPath, stream := dest.StreamInArgsForCall(0) Expect(destPath).To(Equal("some-source/foo")) Expect(stream).To(Equal(someStream)) Expect(fakeOtherSource.StreamToCallCount()).To(Equal(1)) otherSourceDest := fakeOtherSource.StreamToArgsForCall(0) someOtherStream := new(bytes.Buffer) err = otherSourceDest.StreamIn("foo", someOtherStream) Expect(err).NotTo(HaveOccurred()) Expect(dest.StreamInCallCount()).To(Equal(2)) otherDestPath, otherStream := dest.StreamInArgsForCall(1) Expect(otherDestPath).To(Equal("some-other-source/foo"))
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) }) It("returns the error", func() { Expect(artifactSource.StreamTo(fakeDestination)).To(Equal(disaster)) })
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) }) It("returns the error", func() { Ω(artifactSource.StreamTo(fakeDestination)).Should(Equal(disaster)) })
dest := new(fakes.FakeArtifactDestination) err := putArtifactSource.StreamTo(dest) Ω(err).ShouldNot(HaveOccurred()) Ω(fakeSource.StreamToCallCount()).Should(Equal(1)) sourceDest := fakeSource.StreamToArgsForCall(0) someStream := new(bytes.Buffer) err = sourceDest.StreamIn("foo", someStream) Ω(err).ShouldNot(HaveOccurred()) Ω(dest.StreamInCallCount()).Should(Equal(1)) destPath, stream := dest.StreamInArgsForCall(0) Ω(destPath).Should(Equal("some-source/foo")) Ω(stream).Should(Equal(someStream)) }) It("puts the resource with the io config forwarded", func() { Ω(fakeResource.PutCallCount()).Should(Equal(1)) ioConfig, _, _, _ := fakeResource.PutArgsForCall(0) Ω(ioConfig.Stdout).Should(Equal(stdoutBuf)) Ω(ioConfig.Stderr).Should(Equal(stderrBuf)) }) It("runs the get resource action", func() { Ω(fakeVersionedSource.RunCallCount()).Should(Equal(1))