} BeforeEach(func() { client = redis.NewClient(&redis.Options{ Addr: redisAddr, PoolSize: 10, }) }) AfterEach(func() { Expect(client.Close()).NotTo(HaveOccurred()) }) It("should respect max size", func() { perform(1000, func() { val, err := client.Ping().Result() Expect(err).NotTo(HaveOccurred()) Expect(val).To(Equal("PONG")) }) pool := client.Pool() Expect(pool.Len()).To(BeNumerically("<=", 10)) Expect(pool.FreeLen()).To(BeNumerically("<=", 10)) Expect(pool.Len()).To(Equal(pool.FreeLen())) }) It("should respect max on multi", func() { perform(1000, func() { var ping *redis.StatusCmd multi := client.Multi()
// Kill master. sentinelMaster.Shutdown() Eventually(func() error { return sentinelMaster.Ping().Err() }, "5s", "100ms").Should(HaveOccurred()) // Wait for Redis sentinel to elect new master. Eventually(func() string { return sentinelSlave1.Info().Val() + sentinelSlave2.Info().Val() }, "30s", "1s").Should(ContainSubstring("role:master")) // Check that client picked up new master. Eventually(func() error { return client.Get("foo").Err() }, "5s", "100ms").ShouldNot(HaveOccurred()) }) It("supports DB selection", func() { Expect(client.Close()).NotTo(HaveOccurred()) client = redis.NewFailoverClient(&redis.FailoverOptions{ MasterName: sentinelName, SentinelAddrs: []string{":" + sentinelPort}, DB: 1, }) err := client.Ping().Err() Expect(err).NotTo(HaveOccurred()) }) })
BeforeEach(func() { client = redis.NewClient(&redis.Options{ Addr: redisAddr, }) }) AfterEach(func() { client.Close() }) It("should Stringer", func() { Expect(client.String()).To(Equal("Redis<:6380 db:0>")) }) It("should ping", func() { val, err := client.Ping().Result() Expect(err).NotTo(HaveOccurred()) Expect(val).To(Equal("PONG")) }) It("should return pool stats", func() { Expect(client.PoolStats()).To(BeAssignableToTypeOf(&redis.PoolStats{})) }) It("should support custom dialers", func() { custom := redis.NewClient(&redis.Options{ Dialer: func() (net.Conn, error) { return net.Dial("tcp", redisAddr) }, })