PingStub: func() error { return <-pingErrors }, } resources := executor.ExecutorResources{MemoryMB: 128, DiskMB: 1024, Containers: 6} fakeClient.TotalResourcesReturns(resources, nil) logger = lagertest.NewTestLogger("test") clock = fakeclock.NewFakeClock(time.Now()) heartbeaterErrors = make(chan error) observedSignals = make(chan os.Signal, 2) fakeHeartbeater = &maintain_fakes.FakeRunner{ RunStub: func(sigChan <-chan os.Signal, ready chan<- struct{}) error { defer GinkgoRecover() logger.Info("fake-heartbeat-started") close(ready) for { select { case sig := <-sigChan: logger.Info("fake-heartbeat-received-signal") Eventually(observedSignals, time.Millisecond).Should(BeSent(sig)) return nil case err := <-heartbeaterErrors: logger.Info("fake-heartbeat-received-error") return err } } }, }
} err := routingApiClient.UpsertTcpRouteMappings([]db.TcpRouteMapping{tcpRouteMapping}) Expect(err).ToNot(HaveOccurred()) tcpRouteMappings, err := routingApiClient.TcpRouteMappings() Expect(err).NotTo(HaveOccurred()) Expect(tcpRouteMappings).To(ContainElement(tcpRouteMapping)) allOutput := logger.Buffer() runner := testrunner.New(routerConfigurerPath, routerConfigurerArgs) session, err = gexec.Start(runner.Command, allOutput, allOutput) Expect(err).ToNot(HaveOccurred()) }) AfterEach(func() { logger.Info("shutting-down") session.Signal(os.Interrupt) Eventually(session.Exited, 5*time.Second).Should(BeClosed()) server.Signal(os.Interrupt) Eventually(server.Wait(), 5*time.Second).Should(Receive()) oauthServer.Close() }) It("syncs with routing api", func() { Eventually(session.Out, 5*time.Second).Should(gbytes.Say("applied-fetched-routes-to-routing-table")) expectedConfigEntry := "\nlisten listen_cfg_5222\n mode tcp\n bind :5222\n" serverConfigEntry := "server server_some-ip-1_61000 some-ip-1:61000" verifyHaProxyConfigContent(haproxyConfigFile, expectedConfigEntry) verifyHaProxyConfigContent(haproxyConfigFile, serverConfigEntry) })