var sinkManagerMetrics *metrics.SinkManagerMetrics
	var sink sinks.Sink
	var dropUpdateChan chan int64

	BeforeEach(func() {
		fakeEventEmitter.Reset()
		dropUpdateChan = make(chan int64)
		sinkManagerMetrics = metrics.NewSinkManagerMetrics(dropUpdateChan)
	})

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

		sink = &dump.DumpSink{}
		sinkManagerMetrics.Inc(sink)

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

		sinkManagerMetrics.Dec(sink)

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