Value: proto.Float64(0),
			Unit:  proto.String("sinks"),
		}))
	})

	It("emits metrics for firehose sinks", func() {
		Expect(fakeEventEmitter.GetMessages()).To(BeEmpty())

		sinkManagerMetrics.IncFirehose()
		Expect(fakeEventEmitter.GetMessages()[0].Event.(*events.ValueMetric)).To(Equal(&events.ValueMetric{
			Name:  proto.String("messageRouter.numberOfFirehoseSinks"),
			Value: proto.Float64(1),
			Unit:  proto.String("sinks"),
		}))

		sinkManagerMetrics.DecFirehose()
		Expect(fakeEventEmitter.GetMessages()[1].Event.(*events.ValueMetric)).To(Equal(&events.ValueMetric{
			Name:  proto.String("messageRouter.numberOfFirehoseSinks"),
			Value: proto.Float64(0),
			Unit:  proto.String("sinks"),
		}))
	})

	It("emits the total number of message dropped", func() {
		Expect(fakeEventEmitter.GetMessages()).To(BeEmpty())

		dropUpdateChan <- 25
		dropUpdateChan <- 25

		Eventually(fakeEventEmitter.GetMessages).Should(HaveLen(1))
		Expect(fakeEventEmitter.GetMessages()[0].Event.(*events.CounterEvent)).To(Equal(&events.CounterEvent{