Ejemplo n.º 1
0
							Ω(lockedBuild).Should(Equal([]db.NamedLock{db.BuildTrackingLock(model.ID)}))

							Ω(fakeLock.ReleaseCallCount()).Should(BeZero())

							return nil
						}
					})

					Context("when the engine build exists", func() {
						var realBuild *fakes.FakeBuild

						BeforeEach(func() {
							fakeBuildDB.GetBuildReturns(model, nil)

							realBuild = new(fakes.FakeBuild)
							fakeEngineB.LookupBuildReturns(realBuild, nil)
						})

						Context("when aborting the db build succeeds", func() {
							BeforeEach(func() {
								fakeBuildDB.AbortBuildReturns(nil)
							})

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

							It("releases the lock", func() {
								Ω(fakeLock.ReleaseCallCount()).Should(Equal(1))
							})
Ejemplo n.º 2
0
			fakeEngine.LookupBuildStub = func(logger lager.Logger, build db.Build) (engine.Build, error) {
				return engineBuilds[build.ID-1], nil
			}
		})

		It("resumes all currently in-flight builds", func() {
			tracker.Track()

			Eventually(engineBuilds[0].ResumeCallCount).Should(Equal(1))
			Eventually(engineBuilds[1].ResumeCallCount).Should(Equal(1))
			Eventually(engineBuilds[2].ResumeCallCount).Should(Equal(1))
		})

		Context("when a build cannot be looked up", func() {
			BeforeEach(func() {
				fakeEngine.LookupBuildReturns(nil, errors.New("nope"))
			})

			It("saves its status as errored", func() {
				tracker.Track()

				Expect(fakeTrackerDB.ErrorBuildCallCount()).To(Equal(3))

				savedBuilID1, savedErr1 := fakeTrackerDB.ErrorBuildArgsForCall(0)
				Expect(savedBuilID1).To(Equal(1))
				Expect(savedErr1).To(Equal(errors.New("nope")))

				savedBuilID2, savedErr2 := fakeTrackerDB.ErrorBuildArgsForCall(1)
				Expect(savedBuilID2).To(Equal(2))
				Expect(savedErr2).To(Equal(errors.New("nope")))