@@ -60,6 +60,39 @@ var _ = Describe("pipelining", func() {
60
60
Expect (cmds ).To (BeEmpty ())
61
61
})
62
62
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
+
63
96
assertPipeline := func () {
64
97
It ("returns no errors when there are no commands" , func () {
65
98
_ , err := pipe .Exec (ctx )
0 commit comments