@@ -60,6 +60,39 @@ var _ = Describe("pipelining", func() {
6060 Expect (cmds ).To (BeEmpty ())
6161 })
6262
63+ It ("pipeline: basic exec" , func () {
64+ p := client .Pipeline ()
65+ p .Get (ctx , "key" )
66+ p .Set (ctx , "key" , "value" , 0 )
67+ p .Get (ctx , "key" )
68+ cmds , err := p .Exec (ctx )
69+ Expect (err ).To (Equal (redis .Nil ))
70+ Expect (cmds ).To (HaveLen (3 ))
71+ Expect (cmds [0 ].Err ()).To (Equal (redis .Nil ))
72+ Expect (cmds [1 ].(* redis.StatusCmd ).Val ()).To (Equal ("OK" ))
73+ Expect (cmds [1 ].Err ()).NotTo (HaveOccurred ())
74+ Expect (cmds [2 ].(* redis.StringCmd ).Val ()).To (Equal ("value" ))
75+ Expect (cmds [2 ].Err ()).NotTo (HaveOccurred ())
76+ })
77+
78+ It ("pipeline: exec pipeline when get conn failed" , func () {
79+ p := client .Pipeline ()
80+ p .Get (ctx , "key" )
81+ p .Set (ctx , "key" , "value" , 0 )
82+ p .Get (ctx , "key" )
83+
84+ client .Close ()
85+
86+ cmds , err := p .Exec (ctx )
87+ Expect (err ).To (Equal (redis .ErrClosed ))
88+ Expect (cmds ).To (HaveLen (3 ))
89+ for _ , cmd := range cmds {
90+ Expect (cmd .Err ()).To (Equal (redis .ErrClosed ))
91+ }
92+
93+ client = redis .NewClient (redisOptions ())
94+ })
95+
6396 assertPipeline := func () {
6497 It ("returns no errors when there are no commands" , func () {
6598 _ , err := pipe .Exec (ctx )
0 commit comments