handler = handlers.NewHttpHandler(messagesToSend, loggertesthelper.Logger()) testServer = httptest.NewServer(handler) trafficControllerURL = "ws://" + testServer.Listener.Addr().String() }) It("returns the ContainerMetric values from ContainerEnvelopes", func() { env := createContainerMetric(2, 2000) messagesToSend <- marshalMessage(env) close(messagesToSend) envelopes, _ := cnsmr.ContainerEnvelopes(appGuid, authToken) messagesToSend = make(chan []byte, 100) handler.Messages = messagesToSend messagesToSend <- marshalMessage(env) close(messagesToSend) metrics, err := cnsmr.ContainerMetrics(appGuid, authToken) Expect(metrics).To(HaveLen(1)) Expect(err).ToNot(HaveOccurred()) Expect(metrics).To(ConsistOf(envelopes[0].ContainerMetric)) }) }) Describe("ContainerEnvelopes", func() { var ( envelopes []*events.Envelope err error ) BeforeEach(func() { appGuid = "appGuid" })
Describe("RecentLogs", func() { It("uses the token refresher to obtain a new token", func() { cnsmr.RecentLogs("some-fake-app-guid", "") Eventually(refresher.RefreshAuthTokenCalled).Should(BeCalled()) }) It("loads a token if the provided token fails with 401", func() { statuses <- http.StatusUnauthorized cnsmr.RecentLogs("some-fake-app-guid", "") Eventually(refresher.RefreshAuthTokenCalled).Should(BeCalled()) }) }) Describe("ContainerMetrics", func() { It("uses the token refresher to obtain a new token", func() { cnsmr.ContainerMetrics("some-fake-app-guid", "") Eventually(refresher.RefreshAuthTokenCalled).Should(BeCalled()) }) It("loads a token if the provided token fails with 401", func() { statuses <- http.StatusUnauthorized cnsmr.ContainerMetrics("some-fake-app-guid", "") Eventually(refresher.RefreshAuthTokenCalled).Should(BeCalled()) }) }) }) It("does not use the token refresher if an auth token is valid", func() { refresher := newMockTokenRefresher() cnsmr := consumer.New("fakeTrafficControllerURL", nil, nil)
It("logs stream access", func() { noaaConsumer.Stream(APP_ID, AUTH_TOKEN) expected := fmt.Sprintf("CEF:0|cloud_foundry|loggregator_trafficcontroller|1.0|GET /apps/%s/stream|GET /apps/%[1]s/stream|0|", APP_ID) Eventually(testContents).Should(ContainSubstring(expected)) }) It("logs recent access", func() { noaaConsumer.RecentLogs(APP_ID, AUTH_TOKEN) expected := fmt.Sprintf("CEF:0|cloud_foundry|loggregator_trafficcontroller|1.0|GET /apps/%s/recentlogs|GET /apps/%[1]s/recentlogs|0|", APP_ID) Eventually(testContents).Should(ContainSubstring(expected)) }) It("logs container metrics access", func() { noaaConsumer.ContainerMetrics(APP_ID, AUTH_TOKEN) expected := fmt.Sprintf("CEF:0|cloud_foundry|loggregator_trafficcontroller|1.0|GET /apps/%s/containermetrics|GET /apps/%[1]s/containermetrics|0|", APP_ID) Eventually(testContents).Should(ContainSubstring(expected)) }) It("logs firehose access", func() { noaaConsumer.Firehose("foo", AUTH_TOKEN) expected := "CEF:0|cloud_foundry|loggregator_trafficcontroller|1.0|GET /firehose/foo|GET /firehose/foo|0|" Eventually(testContents).Should(ContainSubstring(expected)) }) }) Context("with legacy endpoints", func() { var legacyConsumer loggregator_consumer.LoggregatorConsumer