BeforeEach(func() { natsClient = diegonats.NewFakeClient() logger := lagertest.NewTestLogger("test") workPool, err := workpool.NewWorkPool(1) Expect(err).NotTo(HaveOccurred()) emitter = nats_emitter.New(natsClient, workPool, logger) fakeMetricSender = fake_metrics_sender.NewFakeMetricSender() metrics.Initialize(fakeMetricSender, nil) }) Describe("Emitting", func() { It("should emit register and unregister messages", func() { err := emitter.Emit(messagesToEmit) Expect(err).NotTo(HaveOccurred()) Expect(natsClient.PublishedMessages("router.register")).To(HaveLen(2)) Expect(natsClient.PublishedMessages("router.unregister")).To(HaveLen(2)) registeredPayloads := [][]byte{ natsClient.PublishedMessages("router.register")[0].Data, natsClient.PublishedMessages("router.register")[1].Data, } unregisteredPayloads := [][]byte{ natsClient.PublishedMessages("router.unregister")[0].Data, natsClient.PublishedMessages("router.unregister")[1].Data, } Expect(registeredPayloads).To(ContainElement(MatchJSON(` { "uris":["foo.com", "bar.com"],