Ejemplo n.º 1
0
			close(sink.stop)

			Eventually(func() bool { return sinkManager.IsFirehoseRegistered(sink) }).Should(BeFalse())

		})
	})

	Describe("UnregisterFirehoseSink", func() {

		It("stops the sink and updates metrics", func() {
			sink := &channelSink{done: make(chan struct{}), appId: "firehose-a"}

			Expect(sinkManager.RegisterFirehoseSink(sink)).To(BeTrue())

			sinkManager.UnregisterFirehoseSink(sink)
			Eventually(sink.RunFinished).Should(BeTrue())
			Expect(fakeMetricSender.GetValue("messageRouter.numberOfFirehoseSinks").Value).To(Equal(float64(0)))
		})

		It("does not update metrics when a sink is not registered", func() {
			sink := &channelSink{done: make(chan struct{})}

			sinkManager.UnregisterFirehoseSink(sink)
			Expect(fakeMetricSender.GetValue("messageRouter.numberOfFirehoseSinks").Value).To(Equal(float64(0)))
		})
	})

	Describe("IsFirehoseSinkRegistered", func() {
		It("returns true if sink is registered", func() {
			sink := &channelSink{done: make(chan struct{}), appId: "firehose-a"}