readMessage2 := <-buffer.GetOutputChannel() Expect(readMessage2.GetLogMessage().GetMessage()).To(ContainSubstring("message 2")) }) Context("tracking dropped messages", func() { var fakeEventEmitter *fake.FakeEventEmitter BeforeEach(func() { fakeEventEmitter = fake.NewFakeEventEmitter("doppler") sender := metric_sender.NewMetricSender(fakeEventEmitter) batcher := metricbatcher.New(sender, 100*time.Millisecond) metrics.Initialize(sender, batcher) fakeEventEmitter.Reset() }) tracksDroppedMessages := func(delta, total int) { It("logs the dropped messages", func() { logMessageNotification := <-buffer.GetOutputChannel() Expect(logMessageNotification.GetEventType()).To(Equal(events.Envelope_LogMessage)) Expect(logMessageNotification.GetLogMessage().GetMessage()).To(ContainSubstring(fmt.Sprintf("Log message output is too high. %d messages dropped (Total %d messages dropped) to test-sink-name.", delta, total))) counterEventNotification := <-buffer.GetOutputChannel() Expect(counterEventNotification.GetEventType()).To(Equal(events.Envelope_CounterEvent)) counterEvent := counterEventNotification.GetCounterEvent() Expect(counterEvent.GetName()).To(Equal("TruncatingBuffer.DroppedMessages")) Expect(counterEvent.GetDelta()).To(BeEquivalentTo(delta)) Expect(counterEvent.GetTotal()).To(BeEquivalentTo(total)) })