Ω(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)) }) })