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, ) }
"github.com/cloudfoundry/dropsonde/metric_sender/fake" "github.com/cloudfoundry/dropsonde/metrics" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Auction Metric Emitter Delegate", func() { var delegate auctiontypes.AuctionMetricEmitterDelegate var metricSender *fake.FakeMetricSender BeforeEach(func() { metricSender = fake.NewFakeMetricSender() metrics.Initialize(metricSender, nil) delegate = auctionmetricemitterdelegate.New() }) Describe("AuctionCompleted", func() { It("should adjust the metric counters", func() { resource := rep.NewResource(10, 10, "linux") delegate.AuctionCompleted(auctiontypes.AuctionResults{ SuccessfulLRPs: []auctiontypes.LRPAuction{ { LRP: rep.NewLRP(models.NewActualLRPKey("successful-start", 0, "domain"), resource), }, }, SuccessfulTasks: []auctiontypes.TaskAuction{ { Task: rep.NewTask("successful-task", "domain", resource), },