@@ -132,6 +132,43 @@ var _ = Describe("Commands", func() {
132132 }, "30s" ).Should (Equal ("Background saving started" ))
133133 })
134134
135+ It ("Should CommandGetKeys" , func () {
136+ keys , err := client .CommandGetKeys (ctx , "MSET" , "a" , "b" , "c" , "d" , "e" , "f" ).Result ()
137+ Expect (err ).NotTo (HaveOccurred ())
138+ Expect (keys ).To (Equal ([]string {"a" , "c" , "e" }))
139+
140+ keys , err = client .CommandGetKeys (ctx , "EVAL" , "not consulted" , "3" , "key1" , "key2" , "key3" , "arg1" , "arg2" , "arg3" , "argN" ).Result ()
141+ Expect (err ).NotTo (HaveOccurred ())
142+ Expect (keys ).To (Equal ([]string {"key1" , "key2" , "key3" }))
143+
144+ keys , err = client .CommandGetKeys (ctx , "SORT" , "mylist" , "ALPHA" , "STORE" , "outlist" ).Result ()
145+ Expect (err ).NotTo (HaveOccurred ())
146+ Expect (keys ).To (Equal ([]string {"mylist" , "outlist" }))
147+
148+ _ , err = client .CommandGetKeys (ctx , "FAKECOMMAND" , "arg1" , "arg2" ).Result ()
149+ Expect (err ).To (HaveOccurred ())
150+ Expect (err ).To (MatchError ("ERR Invalid command specified" ))
151+ })
152+
153+ It ("should CommandGetKeysAndFlags" , func () {
154+ keysAndFlags , err := client .CommandGetKeysAndFlags (ctx , "LMOVE" , "mylist1" , "mylist2" , "left" , "left" ).Result ()
155+ Expect (err ).NotTo (HaveOccurred ())
156+ Expect (keysAndFlags ).To (Equal ([]redis.KeyFlags {
157+ {
158+ Key : "mylist1" ,
159+ Flags : []string {"RW" , "access" , "delete" },
160+ },
161+ {
162+ Key : "mylist2" ,
163+ Flags : []string {"RW" , "insert" },
164+ },
165+ }))
166+
167+ _ , err = client .CommandGetKeysAndFlags (ctx , "FAKECOMMAND" , "arg1" , "arg2" ).Result ()
168+ Expect (err ).To (HaveOccurred ())
169+ Expect (err ).To (MatchError ("ERR Invalid command specified" ))
170+ })
171+
135172 It ("should ClientKill" , func () {
136173 r := client .ClientKill (ctx , "1.1.1.1:1111" )
137174 Expect (r .Err ()).To (MatchError ("ERR No such client" ))
0 commit comments