コード例 #1
0
		Ω(messageBus.Subscriptions).Should(HaveKey("dea.heartbeat"))
		Ω(messageBus.Subscriptions["dea.heartbeat"]).Should(HaveLen(1))
	})

	It("should subscribe to the dea.advertise subject", func() {
		Ω(messageBus.Subscriptions).Should(HaveKey("dea.advertise"))
		Ω(messageBus.Subscriptions["dea.advertise"]).Should(HaveLen(1))
	})

	It("should start tracking store usage", func() {
		Ω(usageTracker.DidStart).Should(BeTrue())
		Ω(metricsAccountant.TrackedActualStateListenerStoreUsageFraction).Should(Equal(0.7))
	})

	It("should save heartbeats on a timer", func() {
		Ω(timeProvider.TickerDurationFor(HeartbeatSyncTimer)).Should(Equal(conf.ListenerHeartbeatSyncInterval()))
	})

	Context("when the usage tracker is nil", func() {
		It("should not track metrics (or blow up!)", func() {
			metricsAccountant.TrackedActualStateListenerStoreUsageFraction = -1.0

			listener = New(conf, messageBus, store, nil, metricsAccountant, timeProvider, logger)
			Ω(func() {
				listener.Start()
			}).ShouldNot(Panic())

			Ω(metricsAccountant.TrackedActualStateListenerStoreUsageFraction).Should(Equal(-1.0))
		})
	})