workPool.Stop() }) It("fetches state by calling each client", func() { zones := auctionrunner.FetchStateAndBuildZones(logger, workPool, clients, metricEmitter) Expect(zones).To(HaveLen(2)) cells := map[string]*auctionrunner.Cell{} for _, cell := range zones["the-zone"] { cells[cell.Guid] = cell } Expect(cells).To(HaveLen(2)) Expect(cells).To(HaveKey("A")) Expect(cells).To(HaveKey("B")) Expect(repA.StateCallCount()).To(Equal(1)) Expect(repB.StateCallCount()).To(Equal(1)) otherZone := zones["other-zone"] Expect(otherZone).To(HaveLen(1)) Expect(otherZone[0].Guid).To(Equal("C")) Expect(repC.StateCallCount()).To(Equal(1)) }) Context("when cells are evacuating", func() { BeforeEach(func() { repB.StateReturns(BuildCellState("the-zone", 10, 10, 100, true, linuxOnlyRootFSProviders, nil), nil) }) It("does not include them in the map", func() {