Expect(fakeDB.FinishBuildCallCount()).To(Equal(1))

							buildID, savedStatus := fakeDB.FinishBuildArgsForCall(0)
							Expect(buildID).To(Equal(42))
							Expect(savedStatus).To(Equal(db.StatusSucceeded))
						})
					})
				})

				Context("when exit status is 0", func() {
					BeforeEach(func() {
						fakeDB.SaveBuildInputReturns(db.SavedVersionedResource{
							ID: 42,
							VersionedResource: db.VersionedResource{
								PipelineName: "some-pipeline",
								Resource:     "some-input-resource",
								Type:         "some-type",
								Version:      db.Version{"result": "version"},
								Metadata:     []db.MetadataField{{"saved", "metadata"}},
							},
						}, nil)
					})

					JustBeforeEach(func() {
						inputDelegate.Completed(exec.ExitStatus(0), versionInfo)
					})

					It("saves the build's input", func() {
						Expect(fakeDB.SaveBuildInputCallCount()).To(Equal(1))

						buildID, savedInput := fakeDB.SaveBuildInputArgsForCall(0)
						Expect(buildID).To(Equal(42))