コード例 #1
0
ファイル: middleware_test.go プロジェクト: cloudfoundry/bbs
		BeforeEach(func() {
			logger = lagertest.NewTestLogger("test-session")
			logger.RegisterSink(lager.NewWriterSink(GinkgoWriter, lager.DEBUG))
			loggableHandlerFunc = func(logger lager.Logger, w http.ResponseWriter, r *http.Request) {
				logger = logger.Session("logger-group")
				logger.Info("written-in-loggable-handler")
			}
		})

		It("creates \"request\" session and passes it to LoggableHandlerFunc", func() {
			handler := middleware.LogWrap(logger, nil, loggableHandlerFunc)
			req, err := http.NewRequest("GET", "http://example.com", nil)
			Expect(err).NotTo(HaveOccurred())
			handler.ServeHTTP(nil, req)
			Expect(logger.Buffer()).To(gbytes.Say("test-session.request.serving"))
			Expect(logger.Buffer()).To(gbytes.Say("\"session\":\"1\""))
			Expect(logger.Buffer()).To(gbytes.Say("test-session.request.logger-group.written-in-loggable-handler"))
			Expect(logger.Buffer()).To(gbytes.Say("\"session\":\"1.1\""))
			Expect(logger.Buffer()).To(gbytes.Say("test-session.request.done"))
			Expect(logger.Buffer()).To(gbytes.Say("\"session\":\"1\""))
		})

		Context("with access loggger", func() {
			var accessLogger *lagertest.TestLogger

			BeforeEach(func() {
				accessLogger = lagertest.NewTestLogger("test-access-session")
				accessLogger.RegisterSink(lager.NewWriterSink(GinkgoWriter, lager.DEBUG))
			})
コード例 #2
0
					It("passes the url when creating a rep client", func() {
						Expect(fakeRepClientFactory.CreateClientCallCount()).To(Equal(2))
						repAddr, repURL := fakeRepClientFactory.CreateClientArgsForCall(0)
						Expect(repAddr).To(Equal(cellPresence.RepAddress))
						Expect(repURL).To(Equal(cellPresence.RepUrl))
					})

					Context("when creating a rep client fails", func() {
						BeforeEach(func() {
							err := errors.New("BOOM!!!")
							fakeRepClientFactory.CreateClientReturns(nil, err)
						})

						It("should log the error", func() {
							Expect(logger.Buffer()).To(gbytes.Say("BOOM!!!"))
						})

						It("should not return an error", func() {
							Expect(err).NotTo(HaveOccurred())
						})
					})
				})
			})

			Context("is not present", func() {
				BeforeEach(func() {
					fakeServiceClient.CellByIdReturns(nil,
						&models.Error{
							Type:    models.Error_ResourceNotFound,
							Message: "cell not found",
コード例 #3
0
ファイル: steady_state_test.go プロジェクト: rosenhouse/cnsim
			NumHosts:            1000,
			NumApps:             10000,
			MeanInstancesPerApp: 5,
		}
	})

	Describe("Execute", func() {
		It("logs on start and stop", func() {
			sim.Execute(logger, req)
			Expect(len(logger.LogMessages())).To(BeNumerically(">=", 2))
		})

		It("logs the structured request and responses", func() {
			sim.Execute(logger, req)

			Expect(logger.Buffer()).To(gbytes.Say(`start.*input.*1000`))
			Expect(logger.Buffer()).To(gbytes.Say(`success`))
		})

		It("returns the request data along with the response", func() {
			resp, err := sim.Execute(logger, req)
			Expect(err).NotTo(HaveOccurred())
			Expect(resp.Request).To(Equal(req))
		})

		It("computes the average instances per host", func() {
			resp, err := sim.Execute(logger, req)
			Expect(err).NotTo(HaveOccurred())
			Expect(resp.MeanInstancesPerHost).To(Equal(50.0))
		})