if router != nil { router.Stop() } }) Context("NATS", func() { Context("Router Greetings", func() { It("RouterGreets", func() { response := make(chan []byte) mbusClient.Subscribe("router.greet.test.response", func(msg *nats.Msg) { response <- msg.Data }) mbusClient.PublishRequest("router.greet", "router.greet.test.response", []byte{}) var msg []byte Eventually(response).Should(Receive(&msg)) var message vcap.RouterStart err := json.Unmarshal(msg, &message) Expect(err).NotTo(HaveOccurred()) Expect(message.MinimumRegisterIntervalInSeconds).To(Equal(5)) Expect(message.PruneThresholdInSeconds).To(Equal(120)) }) It("handles a empty reply on greet", func() { err := mbusClient.PublishRequest("router.greet", "", []byte{}) Expect(err).NotTo(HaveOccurred())
_, err = mbusClient.Subscribe("subject", func(msg *nats.Msg) { defer GinkgoRecover() data := make(map[string]interface{}) err := json.Unmarshal(msg.Data, &data) Expect(err).ToNot(HaveOccurred()) for _, key := range members { _, ok := data[key] Expect(ok).To(BeTrue()) } close(done) }) Expect(err).ToNot(HaveOccurred()) err = mbusClient.PublishRequest("vcap.component.discover", "subject", []byte("")) Expect(err).ToNot(HaveOccurred()) Eventually(done).Should(BeClosed()) }) It("publishes to vcap.component.announce on start-up", func() { done := make(chan struct{}) members := []string{ "type", "index", "host", "credentials", "start", "uuid", "uptime",