func initializeAuctionRunner(logger lager.Logger, cellStateTimeout time.Duration, bbsClient bbs.Client, serviceClient bbs.ServiceClient) auctiontypes.AuctionRunner { httpClient := cf_http.NewClient() stateClient := cf_http.NewCustomTimeoutClient(cellStateTimeout) repClientFactory := rep.NewClientFactory(httpClient, stateClient) delegate := auctionrunnerdelegate.New(repClientFactory, bbsClient, serviceClient, logger) metricEmitter := auctionmetricemitterdelegate.New() workPool, err := workpool.NewWorkPool(*auctionRunnerWorkers) if err != nil { logger.Fatal("failed-to-construct-auction-runner-workpool", err, lager.Data{"num-workers": *auctionRunnerWorkers}) // should never happen } return auctionrunner.New( delegate, metricEmitter, clock.NewClock(), workPool, logger, ) }
repClientFactory *repfakes.FakeClientFactory repClient *repfakes.FakeClient logger lager.Logger ) BeforeEach(func() { metricSender = fake.NewFakeMetricSender() metrics.Initialize(metricSender, nil) bbsClient = &fake_bbs.FakeInternalClient{} repClientFactory = &repfakes.FakeClientFactory{} repClient = &repfakes.FakeClient{} repClientFactory.CreateClientReturns(repClient) logger = lagertest.NewTestLogger("delegate") delegate = auctionrunnerdelegate.New(repClientFactory, bbsClient, logger) }) Describe("fetching cell reps", func() { Context("when the BSS succeeds", func() { BeforeEach(func() { cellPresence1 := models.NewCellPresence("cell-A", "cell-a.url", "zone-1", models.NewCellCapacity(123, 456, 789), []string{}, []string{}) cellPresence2 := models.NewCellPresence("cell-B", "cell-b.url", "zone-1", models.NewCellCapacity(123, 456, 789), []string{}, []string{}) cells := []*models.CellPresence{&cellPresence1, &cellPresence2} bbsClient.CellsReturns(cells, nil) }) It("creates rep clients with the correct addresses", func() { _, err := delegate.FetchCellReps() Expect(err).NotTo(HaveOccurred())