Ω(scheduledBuildID).Should(Equal(128)) Ω(jobConfig).Should(Equal(job)) Ω(factory.CreateCallCount()).Should(Equal(1)) createJob, createResources, createInputs := factory.CreateArgsForCall(0) Ω(createJob).Should(Equal(job)) Ω(createResources).Should(Equal(resources)) Ω(createInputs).Should(Equal(newInputs)) Ω(fakePipelineDB.UseInputsForBuildCallCount()).Should(Equal(1)) usedBuildID, usedInputs := fakePipelineDB.UseInputsForBuildArgsForCall(0) Ω(usedBuildID).Should(Equal(128)) Ω(usedInputs).Should(Equal(newInputs)) Ω(fakeEngine.CreateBuildCallCount()).Should(Equal(1)) builtBuild, plan := fakeEngine.CreateBuildArgsForCall(0) Ω(builtBuild).Should(Equal(db.Build{ID: 128, Name: "42"})) Ω(plan).Should(Equal(createdPlan)) }) It("immediately resumes the build", func() { err := scheduler.BuildLatestInputs(logger, job, resources) Ω(err).ShouldNot(HaveOccurred()) Eventually(createdBuild.ResumeCallCount).Should(Equal(1)) }) }) }) Context("when the build cannot be scheduled", func() { BeforeEach(func() {
var plan atc.Plan var fakeEngineBuild *enginefakes.FakeBuild BeforeEach(func() { plan = atc.Plan{} factory.CreateReturns(plan, nil) fakeEngineBuild = new(enginefakes.FakeBuild) fakeEngine.CreateBuildReturns(fakeEngineBuild, nil) }) It("tells the engine to create the build", func() { Expect(fakeEngine.CreateBuildCallCount()).To(Equal(1)) _, passedBuild, passedPlan := fakeEngine.CreateBuildArgsForCall(0) Expect(passedBuild).To(Equal(build)) Expect(passedPlan).To(Equal(plan)) }) It("returns back created build", func() { Expect(engineBuild).To(Equal(fakeEngineBuild)) }) It("calls Resume() on the created build", func() { Expect(logger).To(gbytes.Say("building")) Eventually(fakeEngineBuild.ResumeCallCount).Should(Equal(1)) }) Context("when the engine fails to create the build due to an error", func() { BeforeEach(func() {