@@ -2272,6 +2272,46 @@ var _ = Describe("Commands", func() {
22722272 Expect (lRange .Val ()).To (Equal ([]string {"Hello" , "There" , "World" }))
22732273 })
22742274
2275+ It ("should LMPop" , func () {
2276+ err := client .LPush (ctx , "list1" , "one" , "two" , "three" , "four" , "five" ).Err ()
2277+ Expect (err ).NotTo (HaveOccurred ())
2278+
2279+ err = client .LPush (ctx , "list2" , "a" , "b" , "c" , "d" , "e" ).Err ()
2280+ Expect (err ).NotTo (HaveOccurred ())
2281+
2282+ key , elems , err := client .LMPop (ctx , "left" , 3 , "list1" , "list2" ).Result ()
2283+ Expect (err ).NotTo (HaveOccurred ())
2284+ Expect (key ).To (Equal ("list1" ))
2285+ Expect (elems ).To (Equal ([]string {"five" , "four" , "three" }))
2286+
2287+ key , elems , err = client .LMPop (ctx , "right" , 3 , "list1" , "list2" ).Result ()
2288+ Expect (err ).NotTo (HaveOccurred ())
2289+ Expect (key ).To (Equal ("list1" ))
2290+ Expect (elems ).To (Equal ([]string {"one" , "two" }))
2291+
2292+ key , elems , err = client .LMPop (ctx , "left" , 1 , "list1" , "list2" ).Result ()
2293+ Expect (err ).NotTo (HaveOccurred ())
2294+ Expect (key ).To (Equal ("list2" ))
2295+ Expect (elems ).To (Equal ([]string {"e" }))
2296+
2297+ key , elems , err = client .LMPop (ctx , "right" , 10 , "list1" , "list2" ).Result ()
2298+ Expect (err ).NotTo (HaveOccurred ())
2299+ Expect (key ).To (Equal ("list2" ))
2300+ Expect (elems ).To (Equal ([]string {"a" , "b" , "c" , "d" }))
2301+
2302+ err = client .LMPop (ctx , "left" , 10 , "list1" , "list2" ).Err ()
2303+ Expect (err ).To (Equal (redis .Nil ))
2304+
2305+ err = client .Set (ctx , "list3" , 1024 , 0 ).Err ()
2306+ Expect (err ).NotTo (HaveOccurred ())
2307+
2308+ err = client .LMPop (ctx , "left" , 10 , "list1" , "list2" , "list3" ).Err ()
2309+ Expect (err .Error ()).To (Equal ("WRONGTYPE Operation against a key holding the wrong kind of value" ))
2310+
2311+ err = client .LMPop (ctx , "right" , 0 , "list1" , "list2" ).Err ()
2312+ Expect (err ).To (HaveOccurred ())
2313+ })
2314+
22752315 It ("should LLen" , func () {
22762316 lPush := client .LPush (ctx , "list" , "World" )
22772317 Expect (lPush .Err ()).NotTo (HaveOccurred ())
0 commit comments