func New(apiClient bbs.Client, noaaClient lrpstats.NoaaClient, maxInFlight, bulkLRPStatusWorkers int, logger lager.Logger) (http.Handler, error) { semaphore := make(chan struct{}, maxInFlight) clock := clock.NewClock() handlers := map[string]http.Handler{ tps.LRPStatus: tpsHandler{ semaphore: semaphore, delegateHandler: LogWrap(lrpstatus.NewHandler(apiClient, clock, logger), logger), }, tps.LRPStats: tpsHandler{ semaphore: semaphore, delegateHandler: LogWrap(lrpstats.NewHandler(apiClient, noaaClient, clock, logger), logger), }, tps.BulkLRPStatus: tpsHandler{ semaphore: semaphore, delegateHandler: LogWrap(bulklrpstatus.NewHandler(apiClient, clock, bulkLRPStatusWorkers, logger), logger), }, } return rata.NewRouter(tps.Routes, handlers) }
response *httptest.ResponseRecorder request *http.Request noaaClient *fakes.FakeNoaaClient bbsClient *fake_bbs.FakeClient logger *lagertest.TestLogger fakeClock *fakeclock.FakeClock ) BeforeEach(func() { var err error bbsClient = new(fake_bbs.FakeClient) noaaClient = &fakes.FakeNoaaClient{} logger = lagertest.NewTestLogger("test") fakeClock = fakeclock.NewFakeClock(time.Date(2008, 8, 8, 8, 8, 8, 8, time.UTC)) handler = lrpstats.NewHandler(bbsClient, noaaClient, fakeClock, logger) response = httptest.NewRecorder() request, err = http.NewRequest("GET", "/v1/actual_lrps/:guid/stats", nil) Expect(err).NotTo(HaveOccurred()) }) JustBeforeEach(func() { handler.ServeHTTP(response, request) }) Describe("Validation", func() { It("fails with a missing authorization header", func() { Expect(response.Code).To(Equal(http.StatusUnauthorized)) }) Context("with an authorization header", func() {