returnedVolumes = append(returnedVolumes, newestReturnedSavedVolume) fakeBaggageCollectorDB.GetAllPipelinesReturns([]db.SavedPipeline{fakeSavedPipeline}, nil) fakePipelineDBFactory.BuildReturns(&fakePipelineDB) fakePipelineDB.GetLatestEnabledVersionedResourceReturns(fakeSavedVersionedResource, true, nil) fakeWorkerClient.GetWorkerReturns(nil, errors.New("no-worker-found")) }) It("should remove the volume from the database", func() { err := baggageCollector.Collect() Expect(err).NotTo(HaveOccurred()) Expect(fakeBaggageCollectorDB.ReapVolumeCallCount()).To(Equal(2)) Expect(fakeBaggageCollectorDB.ReapVolumeArgsForCall(0)).To(Equal(returnedSavedVolume.Handle)) Expect(fakeBaggageCollectorDB.ReapVolumeArgsForCall(1)).To(Equal(newestReturnedSavedVolume.Handle)) }) }) Context("when volume no longer exists", func() { Context("when the worker is no longer around", func() { BeforeEach(func() { fakeWorkerClient.GetWorkerReturns(nil, errors.New("no-worker-found")) }) It("removes the volume from the database", func() { err := baggageCollector.Collect() Expect(err).NotTo(HaveOccurred()) Expect(fakeBaggageCollectorDB.ReapVolumeCallCount()).To(Equal(1))