It("heartbeats", func() { vol, err := volumeFactory.Build(logger, fakeVolume) Expect(err).ToNot(HaveOccurred()) By("looking up the initial ttl in the database") Expect(fakeDB.GetVolumeTTLCallCount()).To(Equal(1)) actualHandle := fakeDB.GetVolumeTTLArgsForCall(0) Expect(actualHandle).To(Equal("some-handle")) By("using that ttl to heartbeat the volume initially") Expect(fakeVolume.SetTTLCallCount()).To(Equal(1)) actualTTL := fakeVolume.SetTTLArgsForCall(0) Expect(actualTTL).To(Equal(expectedTTL)) Expect(fakeDB.SetVolumeTTLCallCount()).To(Equal(1)) actualHandle, actualTTL = fakeDB.SetVolumeTTLArgsForCall(0) Expect(actualHandle).To(Equal(vol.Handle())) Expect(actualTTL).To(Equal(expectedTTL)) By("using the ttl from the database each tick") fakeDB.GetVolumeTTLReturns(expectedTTL2, nil) fakeClock.Increment(30 * time.Second) Eventually(fakeVolume.SetTTLCallCount).Should(Equal(2)) actualTTL = fakeVolume.SetTTLArgsForCall(1) Expect(actualTTL).To(Equal(expectedTTL2)) Eventually(fakeDB.SetVolumeTTLCallCount).Should(Equal(2)) actualHandle, actualTTL = fakeDB.SetVolumeTTLArgsForCall(1) Expect(actualHandle).To(Equal(vol.Handle())) Expect(actualTTL).To(Equal(expectedTTL2))