@@ -3752,6 +3752,85 @@ var _ = Describe("Commands", func() {
37523752 }}))
37533753 })
37543754
3755+ It ("should ZMPop" , func () {
3756+
3757+ err := client .ZAdd (ctx , "zset" , redis.Z {Score : 1 , Member : "one" }).Err ()
3758+ Expect (err ).NotTo (HaveOccurred ())
3759+ err = client .ZAdd (ctx , "zset" , redis.Z {Score : 2 , Member : "two" }).Err ()
3760+ Expect (err ).NotTo (HaveOccurred ())
3761+ err = client .ZAdd (ctx , "zset" , redis.Z {Score : 3 , Member : "three" }).Err ()
3762+ Expect (err ).NotTo (HaveOccurred ())
3763+
3764+ err = client .ZAdd (ctx , "zset2" , redis.Z {Score : 1 , Member : "one" }).Err ()
3765+ Expect (err ).NotTo (HaveOccurred ())
3766+ err = client .ZAdd (ctx , "zset2" , redis.Z {Score : 2 , Member : "two" }).Err ()
3767+ Expect (err ).NotTo (HaveOccurred ())
3768+ err = client .ZAdd (ctx , "zset2" , redis.Z {Score : 3 , Member : "three" }).Err ()
3769+ Expect (err ).NotTo (HaveOccurred ())
3770+
3771+ key , elems , err := client .ZMPop (ctx , "min" , 1 , "zset" ).Result ()
3772+ Expect (err ).NotTo (HaveOccurred ())
3773+ Expect (key ).To (Equal ("zset" ))
3774+ Expect (elems ).To (Equal ([]redis.Z {{
3775+ Score : 1 ,
3776+ Member : "one" ,
3777+ }}))
3778+
3779+ _ , _ , err = client .ZMPop (ctx , "min" , 1 , "nosuchkey" ).Result ()
3780+ Expect (err ).To (Equal (redis .Nil ))
3781+
3782+ err = client .ZAdd (ctx , "myzset" , redis.Z {Score : 1 , Member : "one" }).Err ()
3783+ Expect (err ).NotTo (HaveOccurred ())
3784+ err = client .ZAdd (ctx , "myzset" , redis.Z {Score : 2 , Member : "two" }).Err ()
3785+ Expect (err ).NotTo (HaveOccurred ())
3786+ err = client .ZAdd (ctx , "myzset" , redis.Z {Score : 3 , Member : "three" }).Err ()
3787+ Expect (err ).NotTo (HaveOccurred ())
3788+
3789+ key , elems , err = client .ZMPop (ctx , "min" , 1 , "myzset" ).Result ()
3790+ Expect (err ).NotTo (HaveOccurred ())
3791+ Expect (key ).To (Equal ("myzset" ))
3792+ Expect (elems ).To (Equal ([]redis.Z {{
3793+ Score :1 ,
3794+ Member :"one" ,
3795+ }}))
3796+
3797+ key , elems , err = client .ZMPop (ctx , "max" , 10 , "myzset" ).Result ()
3798+ Expect (err ).NotTo (HaveOccurred ())
3799+ Expect (key ).To (Equal ("myzset" ))
3800+ Expect (elems ).To (Equal ([]redis.Z {{
3801+ Score :3 ,
3802+ Member :"three" ,
3803+ },{
3804+ Score : 2 ,
3805+ Member : "two" ,
3806+ }}))
3807+
3808+
3809+ err = client .ZAdd (ctx , "myzset2" , redis.Z {Score : 4 , Member : "four" }).Err ()
3810+ Expect (err ).NotTo (HaveOccurred ())
3811+ err = client .ZAdd (ctx , "myzset2" , redis.Z {Score : 5 , Member : "five" }).Err ()
3812+ Expect (err ).NotTo (HaveOccurred ())
3813+ err = client .ZAdd (ctx , "myzset2" , redis.Z {Score : 6 , Member : "six" }).Err ()
3814+ Expect (err ).NotTo (HaveOccurred ())
3815+
3816+ key , elems , err = client .ZMPop (ctx , "min" , 10 , "myzset" ,"myzset2" ).Result ()
3817+ Expect (err ).NotTo (HaveOccurred ())
3818+ Expect (key ).To (Equal ("myzset2" ))
3819+ Expect (elems ).To (Equal ([]redis.Z {{
3820+ Score :4 ,
3821+ Member :"four" ,
3822+ },{
3823+ Score : 5 ,
3824+ Member : "five" ,
3825+ },{
3826+ Score :6 ,
3827+ Member : "six" ,
3828+ }}))
3829+
3830+
3831+
3832+ })
3833+
37553834 It ("should ZMScore" , func () {
37563835 zmScore := client .ZMScore (ctx , "zset" , "one" , "three" )
37573836 Expect (zmScore .Err ()).NotTo (HaveOccurred ())
0 commit comments