JustBeforeEach(func() { abortErr = build.Abort() }) Context("when acquiring the lock succeeds", func() { var fakeLock *dbfakes.FakeLock BeforeEach(func() { fakeLock = new(dbfakes.FakeLock) fakeLocker.AcquireWriteLockImmediatelyReturns(fakeLock, nil) }) Context("when the build is active", func() { BeforeEach(func() { model.Engine = "fake-engine-b" fakeBuildDB.GetBuildReturns(model, nil) fakeBuildDB.AbortBuildStub = func(int) error { Ω(fakeLocker.AcquireWriteLockImmediatelyCallCount()).Should(Equal(1)) lockedBuild := fakeLocker.AcquireWriteLockImmediatelyArgsForCall(0) Ω(lockedBuild).Should(Equal([]db.NamedLock{db.BuildTrackingLock(model.ID)})) Ω(fakeLock.ReleaseCallCount()).Should(BeZero()) return nil } })