"ComponentName", func() error { return nil }, 20*time.Millisecond, 35*time.Millisecond, fakelogger.NewFakeLogger(), adapter, ) Eventually(func() string { return adapter.MaintainedNodeName }).Should(Equal("/hm/locks/ComponentName")) }) Context("when the locker fails", func() { disaster := errors.New("oh no!") BeforeEach(func() { adapter.MaintainNodeError = disaster }) It("returns the error", func() { err := Daemonize( "Daemon Test", func() error { Fail("NOPE"); return nil }, 20*time.Millisecond, 35*time.Millisecond, fakelogger.NewFakeLogger(), adapter, ) Ω(err).Should(Equal(disaster)) }) })
EtcdUrls: []string{"test:123", "test:456"}, Zone: "z1", DropsondeIncomingMessagesPort: 1234, } }) It("sends a heartbeat to etcd", func() { main.StartHeartbeats(localIp, time.Second, &conf, adapter, loggertesthelper.Logger()) Expect(adapter.GetMaintainedNodeName()).To(Equal("/healthstatus/doppler/z1/doppler_z1/0")) Expect(adapter.MaintainedNodeValue).To(Equal([]byte(localIp))) }) Context("when there is an error", func() { It("panics", func() { adapter.MaintainNodeError = errors.New("error") Expect(func() { main.StartHeartbeats(localIp, time.Second, &conf, adapter, loggertesthelper.Logger()) }).To(Panic()) }) }) }) Context("without a valid ETCD config", func() { It("does not send a heartbeat", func() { conf := config.Config{ JobName: "doppler_z1", Index: 0, EtcdMaxConcurrentRequests: 10, } localIp, _ := localip.LocalIP() main.StartHeartbeats(localIp, time.Second, &conf, adapter, loggertesthelper.Logger())
var adapter *fakestoreadapter.FakeStoreAdapter BeforeEach(func() { adapter = fakestoreadapter.New() }) Context("with valid ETCD config", func() { var dopplerKey string BeforeEach(func() { dopplerKey = fmt.Sprintf("/doppler/meta/%s/%s/%d", conf.Zone, conf.JobName, conf.Index) }) It("Panics if etcd returns error", func() { err := errors.New("some etcd time out error") adapter.MaintainNodeError = err Expect(func() { announcer.Announce(localIP, time.Second, &conf, adapter, loggertesthelper.Logger()) }).To(Panic()) }) Context("when tls transport is enabled", func() { It("has udp and tcp value", func() { dopplerMeta := fmt.Sprintf(`{"version": 1, "ip": "%s", "transports":[{"protocol":"udp","port":1234},{"protocol":"tls","port":4567}]}`, localIP) conf.EnableTLSTransport = true conf.TLSListenerConfig = config.TLSListenerConfig{ Port: 4567, } announcer.Announce(localIP, time.Second, &conf, adapter, loggertesthelper.Logger())