func initializeNatsEmitter(natsClient diegonats.NATSClient, logger lager.Logger) nats_emitter.NATSEmitter { workPool, err := workpool.NewWorkPool(*routeEmittingWorkers) if err != nil { logger.Fatal("failed-to-construct-nats-emitter-workpool", err, lager.Data{"num-workers": *routeEmittingWorkers}) // should never happen } return nats_emitter.New(natsClient, workPool, logger) }
RegistrationMessages: []routing_table.RegistryMessage{ {URIs: []string{"foo.com", "bar.com"}, Host: "1.1.1.1", Port: 11}, {URIs: []string{"baz.com"}, Host: "2.2.2.2", Port: 22}, }, UnregistrationMessages: []routing_table.RegistryMessage{ {URIs: []string{"wibble.com"}, Host: "1.1.1.1", Port: 11}, {URIs: []string{"baz.com"}, Host: "3.3.3.3", Port: 33}, }, } 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,