Example #1
0
				Expect(sources).To(HaveKey("some-mounted-source"))
			})

			It("puts the resource with the correct source and params, and the full repository as the artifact source", func() {
				Expect(fakeResource.PutCallCount()).To(Equal(1))

				_, putSource, putParams, putArtifactSource := fakeResource.PutArgsForCall(0)
				Expect(putSource).To(Equal(resourceConfig.Source))
				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)
Example #2
0
									{Name: "some-input", Path: "some-input-configured-path"},
									{Name: "some-other-input"},
								},
							}, nil)
						})

						Context("when all inputs are present in the in source repository", func() {
							BeforeEach(func() {
								repo.RegisterSource("some-input", inputSource)
								repo.RegisterSource("some-other-input", otherInputSource)
							})

							It("streams each of them to their configured destinations", func() {
								streamIn := new(bytes.Buffer)

								Ω(inputSource.StreamToCallCount()).Should(Equal(1))

								destination := inputSource.StreamToArgsForCall(0)

								initial := fakeContainer.StreamInCallCount()

								err := destination.StreamIn("foo", streamIn)
								Ω(err).ShouldNot(HaveOccurred())

								Ω(fakeContainer.StreamInCallCount()).Should(Equal(initial + 1))

								spec := fakeContainer.StreamInArgsForCall(initial)
								Ω(spec.Path).Should(Equal("/tmp/build/a-random-guid/some-input-configured-path/foo"))
								Ω(spec.User).Should(Equal("")) // use default
								Ω(spec.TarStream).Should(Equal(streamIn))
Example #3
0
				Ω(tags).Should(ConsistOf("some", "tags"))
			})

			It("puts the resource with the correct source and params, and the full repository as the artifact source", func() {
				Ω(fakeResource.PutCallCount()).Should(Equal(1))

				_, putSource, putParams, putArtifactSource := fakeResource.PutArgsForCall(0)
				Ω(putSource).Should(Equal(resourceConfig.Source))
				Ω(putParams).Should(Equal(params))

				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() {
Example #4
0
				BeforeEach(func() {
					fakeDestination = new(fakes.FakeArtifactDestination)
				})

				JustBeforeEach(func() {
					streamErr = repo.StreamTo(fakeDestination)
				})

				It("succeeds", func() {
					Expect(streamErr).NotTo(HaveOccurred())
				})

				It("streams both sources to the destination under subdirectories", func() {
					someStream := new(bytes.Buffer)

					Expect(firstSource.StreamToCallCount()).To(Equal(1))
					Expect(secondSource.StreamToCallCount()).To(Equal(1))

					firstDestination := firstSource.StreamToArgsForCall(0)
					secondDestination := secondSource.StreamToArgsForCall(0)

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

					Expect(fakeDestination.StreamInCallCount()).To(Equal(1))
					destDir, stream := fakeDestination.StreamInArgsForCall(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))
Example #5
0
				BeforeEach(func() {
					fakeDestination = new(fakes.FakeArtifactDestination)
				})

				JustBeforeEach(func() {
					streamErr = repo.StreamTo(fakeDestination)
				})

				It("succeeds", func() {
					Ω(streamErr).ShouldNot(HaveOccurred())
				})

				It("streams both sources to the destination under subdirectories", func() {
					someStream := new(bytes.Buffer)

					Ω(firstSource.StreamToCallCount()).Should(Equal(1))
					Ω(secondSource.StreamToCallCount()).Should(Equal(1))

					firstDestination := firstSource.StreamToArgsForCall(0)
					secondDestination := secondSource.StreamToArgsForCall(0)

					Ω(firstDestination.StreamIn("foo", someStream)).Should(Succeed())

					Ω(fakeDestination.StreamInCallCount()).Should(Equal(1))
					destDir, stream := fakeDestination.StreamInArgsForCall(0)
					Ω(destDir).Should(Equal("first-source/foo"))
					Ω(stream).Should(Equal(someStream))

					Ω(secondDestination.StreamIn("foo", someStream)).Should(Succeed())

					Ω(fakeDestination.StreamInCallCount()).Should(Equal(2))