Пример #1
0
				return []interface{}{"something", "port"}, errors.New("error getting master address")
			})
			sentinel = mcredis.NewSentinel(redisDialer, "master", "goodSentinel,goodSentinel", 0)
			_, err := sentinel.ConnectAndGetMaster()

			Expect(dialSentinelCount).To(Equal(2))
			Expect(getMasterAddrCallCount).To(Equal(2))
			Expect(err.Error()).To(Equal("error getting master address"))
		})

		It("puts successfully-connected sentinel address at beginning of sentinel servers list", func() {
			sentinel = mcredis.NewSentinel(redisDialer, "master", "badSentinel,badSentinel,goodSentinel,badSentinel", 0)
			_, err := sentinel.ConnectAndGetMaster()

			Expect(err).To(BeNil())
			Expect(sentinel.GetServers()).To(Equal([]string{"goodSentinel", "badSentinel", "badSentinel", "badSentinel"}))
			Expect(dialSentinelCount).To(Equal(3))
		})
	})

	Describe("#GetInfo", func() {
		It("connects to a sentinel and returns the master address and sentinel address that it used", func() {
			sentinel = mcredis.NewSentinel(redisDialer, "master", "goodSentinel", 0)
			master, sent := sentinel.GetInfo()

			Expect(master).To(Equal("masterAddr:port"))
			Expect(sent).To(Equal("goodSentinel"))
		})
	})
})