PrivateInstanceIndex: "index", Port: 1111, StaleThresholdInSeconds: 120, Uris: []route.Uri{"test.example.com", "test2.example.com"}, Tags: map[string]string{"key": "value"}, } data, err := json.Marshal(msg) Expect(err).NotTo(HaveOccurred()) err = natsClient.Publish("router.register", data) Expect(err).ToNot(HaveOccurred()) Eventually(registry.RegisterCallCount).Should(Equal(2)) Expect(registry.UnregisterCallCount()).To(Equal(0)) err = natsClient.Publish("router.unregister", data) Expect(err).ToNot(HaveOccurred()) Eventually(registry.UnregisterCallCount).Should(Equal(2)) for i := 0; i < registry.UnregisterCallCount(); i++ { uri, endpoint := registry.UnregisterArgsForCall(i) Expect(msg.Uris).To(ContainElement(uri)) Expect(endpoint.ApplicationId).To(Equal(msg.App)) Expect(endpoint.Tags).To(Equal(msg.Tags)) Expect(endpoint.PrivateInstanceId).To(Equal(msg.PrivateInstanceID)) Expect(endpoint.PrivateInstanceIndex).To(Equal(msg.PrivateInstanceIndex)) Expect(endpoint.RouteServiceUrl).To(Equal(msg.RouteServiceURL)) Expect(endpoint.CanonicalAddr()).To(ContainSubstring(msg.Host)) }
secondResponse := []models.Route{ response[0], } client.RoutesReturns(response, nil) err := fetcher.FetchRoutes() Expect(err).ToNot(HaveOccurred()) Expect(registry.RegisterCallCount()).To(Equal(3)) client.RoutesReturns(secondResponse, nil) err = fetcher.FetchRoutes() Expect(err).ToNot(HaveOccurred()) Expect(registry.RegisterCallCount()).To(Equal(4)) Expect(registry.UnregisterCallCount()).To(Equal(2)) expectedUnregisteredRoutes := []models.Route{ response[1], response[2], } for i := 0; i < 2; i++ { expectedRoute := expectedUnregisteredRoutes[i] uri, endpoint := registry.UnregisterArgsForCall(i) Expect(uri).To(Equal(route.Uri(expectedRoute.Route))) Expect(endpoint).To(Equal( route.NewEndpoint(expectedRoute.LogGuid, expectedRoute.IP, uint16(expectedRoute.Port), expectedRoute.LogGuid,