Tags: map[string]string{"key": "value"}, } data, err := json.Marshal(msg) Expect(err).NotTo(HaveOccurred()) var alreadyUnregistered uint32 registry.RegisterStub = func(uri route.Uri, e *route.Endpoint) { defer GinkgoRecover() if uri == racingURI { Expect(atomic.LoadUint32(&alreadyUnregistered)).To(Equal(uint32(0))) } } registry.UnregisterStub = func(uri route.Uri, e *route.Endpoint) { if uri == racingURI { atomic.StoreUint32(&alreadyUnregistered, 1) } } for i := 0; i < 100; i++ { err = natsClient.Publish("router.register", data) Expect(err).ToNot(HaveOccurred()) } err = natsClient.Publish("router.register", racingData) Expect(err).ToNot(HaveOccurred()) err = natsClient.Publish("router.unregister", racingData) Expect(err).ToNot(HaveOccurred()) Eventually(func() uint32 { return atomic.LoadUint32(&alreadyUnregistered)