Expect(workerC.VolumeManagerCallCount()).To(Equal(1)) var handle string Expect(workerBBaggageClaimClient.LookupVolumeCallCount()).To(Equal(1)) _, handle = workerBBaggageClaimClient.LookupVolumeArgsForCall(0) Expect(handle).To(Equal("docker-volume-handle")) Expect(dockerVolume.ReleaseCallCount()).To(Equal(1)) Expect(dockerVolume.ReleaseArgsForCall(0)).To(Equal(worker.FinalTTL(expectedLatestVersionTTL))) Expect(workerCBaggageClaimClient.LookupVolumeCallCount()).To(Equal(1)) _, handle = workerCBaggageClaimClient.LookupVolumeArgsForCall(0) Expect(handle).To(Equal("crossed-wires-volume-handle")) Expect(crossedWiresVolume.ReleaseCallCount()).To(Equal(1)) Expect(crossedWiresVolume.ReleaseArgsForCall(0)).To(Equal(worker.FinalTTL(expectedOldVersionTTL))) Expect(fakeBaggageCollectorDB.SetVolumeTTLCallCount()).To(Equal(2)) type setVolumeTTLArgs struct { Handle string TTL time.Duration } expectedSetVolumeTTLArgs := []setVolumeTTLArgs{ { Handle: "docker-volume-handle", TTL: expectedLatestVersionTTL, }, { Handle: "crossed-wires-volume-handle", TTL: expectedOldVersionTTL, },
var actualHandles []string for i := 0; i < fakeBaggageClaimClient.LookupVolumeCallCount(); i++ { _, actualHandle := fakeBaggageClaimClient.LookupVolumeArgsForCall(i) actualHandles = append(actualHandles, actualHandle) } var expectedHandles []string for handle, expectedTTL := range example.expectedTTLs { Expect(fakeVolumes[handle].ReleaseCallCount()).To(Equal(1)) actualTTL := fakeVolumes[handle].ReleaseArgsForCall(0) Expect(actualTTL).To(Equal(worker.FinalTTL(expectedTTL))) expectedHandles = append(expectedHandles, handle) } Expect(actualHandles).To(ConsistOf(expectedHandles)) Expect(fakeBaggageCollectorDB.SetVolumeTTLCallCount()).To(Equal(len(example.expectedTTLs))) actualHandles = nil for i := 0; i < fakeBaggageCollectorDB.SetVolumeTTLCallCount(); i++ { actualHandle, actualTTL := fakeBaggageCollectorDB.SetVolumeTTLArgsForCall(i) actualHandles = append(actualHandles, actualHandle) Expect(actualTTL).To(Equal(example.expectedTTLs[actualHandle])) } Expect(actualHandles).To(ConsistOf(expectedHandles)) } }, Entry("when there are volumes cached for multiple versions of the resource", baggageCollectionExample{ pipelineData: map[string][]resourceConfigAndVersions{ "pipeline-a": []resourceConfigAndVersions{