Пример #1
0
								Ω(err).ShouldNot(HaveOccurred())

								Ω(fakeContainer.StreamInCallCount()).Should(Equal(initial + 1))
								spec = fakeContainer.StreamInArgsForCall(initial)
								Ω(spec.Path).Should(Equal("/tmp/build/a-random-guid/some-other-input/foo"))
								Ω(spec.User).Should(Equal("")) // use default
								Ω(spec.TarStream).Should(Equal(streamIn))

								Eventually(process.Wait()).Should(Receive(BeNil()))
							})

							Context("when streaming the bits in to the container fails", func() {
								disaster := errors.New("nope")

								BeforeEach(func() {
									inputSource.StreamToReturns(disaster)
								})

								It("exits with the error", func() {
									Eventually(process.Wait()).Should(Receive(Equal(disaster)))
								})

								It("does not run anything", func() {
									Eventually(process.Wait()).Should(Receive())
									Ω(fakeContainer.RunCallCount()).Should(Equal(0))
								})

								It("invokes the delegate's Failed callback", func() {
									Eventually(process.Wait()).Should(Receive(Equal(disaster)))
									Ω(taskDelegate.FailedCallCount()).Should(Equal(1))
									Ω(taskDelegate.FailedArgsForCall(0)).Should(Equal(disaster))
Пример #2
0
					Expect(destDir).To(Equal("first-source/foo"))
					Expect(stream).To(Equal(someStream))

					Expect(secondDestination.StreamIn("foo", someStream)).To(Succeed())

					Expect(fakeDestination.StreamInCallCount()).To(Equal(2))
					destDir, stream = fakeDestination.StreamInArgsForCall(1)
					Expect(destDir).To(Equal("second-source/foo"))
					Expect(stream).To(Equal(someStream))
				})

				Context("when the any of the sources fails to stream", func() {
					disaster := errors.New("nope")

					BeforeEach(func() {
						secondSource.StreamToReturns(disaster)
					})

					It("returns the error", func() {
						Expect(streamErr).To(Equal(disaster))
					})
				})
			})

			Describe("StreamFile", func() {
				var path string

				var stream io.Reader
				var streamErr error

				JustBeforeEach(func() {