_, err := lockPool.ClaimLock("some-lock") Ω(err).ShouldNot(HaveOccurred()) Ω(fakeLockHandler.ClaimLockCallCount()).Should(Equal(1)) Ω(fakeLockHandler.ClaimLockArgsForCall(0)).Should(Equal("some-lock")) }) Context("when attempting to claim a lock fails", func() { BeforeEach(func() { called := false fakeLockHandler.ClaimLockStub = func(lock string) (string, error) { // succeed on second call if !called { called = true return "", errors.New("disaster") } else { return "", nil } } }) It("retries", func() { _, err := lockPool.ClaimLock("some-lock") Ω(err).ShouldNot(HaveOccurred()) Ω(fakeLockHandler.ClaimLockCallCount()).Should(Equal(2)) }) }) Context("when claiming a specific lock succeeds", func() { BeforeEach(func() {