@@ -36,7 +36,19 @@ public function test_separate() {
3636 $ this ->assertSame ($ Pipeline , $ Pipeline ->incr ('bar ' ));
3737 $ this ->assertSame ($ Pipeline , $ Pipeline ->get ('bar ' ));
3838 $ this ->assertSame ($ Pipeline , $ Pipeline ->mget (['foo ' , 'bar ' ]));
39- $ this ->assertSame ([true , 5 , '5 ' , true , 3 , '3 ' , ['5 ' , '3 ' ]], $ Redis ->pipeline ($ Pipeline ));
39+ $ this ->assertSame ($ Pipeline , $ Pipeline ->time ());
40+
41+ $ result = $ Redis ->pipeline ($ Pipeline );
42+
43+ $ this ->assertSame (8 , count ($ result ));
44+ $ this ->assertSame (true , $ result [0 ]);
45+ $ this ->assertSame (5 , $ result [1 ]);
46+ $ this ->assertSame ('5 ' , $ result [2 ]);
47+ $ this ->assertSame (true , $ result [3 ]);
48+ $ this ->assertSame (3 , $ result [4 ]);
49+ $ this ->assertSame ('3 ' , $ result [5 ]);
50+ $ this ->assertSame (['5 ' , '3 ' ], $ result [6 ]);
51+ $ this ->assertSame (true , is_numeric ($ result [7 ]));
4052
4153 /** @var Pipeline $Pipeline */
4254 $ Pipeline = $ Redis ->pipeline ();
@@ -61,15 +73,28 @@ public function test_pipeline() {
6173 $ Pipeline = $ Redis ->pipeline ();
6274 $ this ->assertInstanceOf (PipelineInterface::class, $ Pipeline );
6375
64- $ this ->assertSame (
65- [true , 5 , '5 ' , true , 3 , '3 ' , ['5 ' , '3 ' ]],
66- $ Redis ->pipeline (
67- $ Pipeline ->set ('foo ' , '4 ' )->incr ('foo ' )->get ('foo ' )
68- ->set ('bar ' , '2 ' )->incr ('bar ' )->get ('bar ' )
69- ->mget (['foo ' , 'bar ' ])
70- )
76+ $ result = $ Redis ->pipeline (
77+ $ Pipeline
78+ ->set ('foo ' , '4 ' )
79+ ->incr ('foo ' )
80+ ->get ('foo ' )
81+ ->set ('bar ' , '2 ' )
82+ ->incr ('bar ' )
83+ ->get ('bar ' )
84+ ->mget (['foo ' , 'bar ' ])
85+ ->time ()
7186 );
7287
88+ $ this ->assertSame (8 , count ($ result ));
89+ $ this ->assertSame (true , $ result [0 ]);
90+ $ this ->assertSame (5 , $ result [1 ]);
91+ $ this ->assertSame ('5 ' , $ result [2 ]);
92+ $ this ->assertSame (true , $ result [3 ]);
93+ $ this ->assertSame (3 , $ result [4 ]);
94+ $ this ->assertSame ('3 ' , $ result [5 ]);
95+ $ this ->assertSame (['5 ' , '3 ' ], $ result [6 ]);
96+ $ this ->assertSame (true , is_numeric ($ result [7 ]));
97+
7398 /** @var Pipeline $Pipeline */
7499 $ Pipeline = $ Redis ->pipeline ();
75100 $ this ->assertInstanceOf (PipelineInterface::class, $ Pipeline );
@@ -127,10 +152,11 @@ public function test_transaction() {
127152 ->set ('bar ' , 'new ' )
128153 ->get ('bar ' )
129154 ->echo ('hello word ' )
155+ ->time ()
130156 ->exec ();
131157 });
132158
133- $ this ->assertSame (10 , count ($ result ));
159+ $ this ->assertSame (11 , count ($ result ));
134160 $ this ->assertSame (true , $ result [0 ]);
135161 $ this ->assertSame ('QUEUED ' , $ result [1 ]);
136162 $ this ->assertSame ('QUEUED ' , $ result [2 ]);
@@ -140,10 +166,40 @@ public function test_transaction() {
140166 $ this ->assertSame ('QUEUED ' , $ result [6 ]);
141167 $ this ->assertSame ('QUEUED ' , $ result [7 ]);
142168 $ this ->assertSame ('QUEUED ' , $ result [8 ]);
169+ $ this ->assertSame ('QUEUED ' , $ result [9 ]);
143170
144- $ result = $ result [9 ];
171+ $ result = $ result [10 ];
145172
146- $ this ->assertSame (8 , count ($ result ));
173+ $ this ->assertSame (9 , count ($ result ));
174+ $ this ->assertSame (true , $ result [0 ]);
175+ $ this ->assertSame (true , $ result [1 ]);
176+ $ this ->assertSame ('bar ' , $ result [2 ]);
177+ $ this ->assertInstanceOf (ErrorResponseException::class, $ result [3 ]);
178+ $ this ->assertInstanceOf (ErrorResponseException::class, $ result [4 ]);
179+ $ this ->assertSame (true , $ result [5 ]);
180+ $ this ->assertSame ('new ' , $ result [6 ]);
181+ $ this ->assertSame ('hello word ' , $ result [7 ]);
182+ $ this ->assertSame (true , is_string ($ result [8 ]));
183+ $ this ->assertSame (true , is_numeric ($ result [8 ][0 ]));
184+ }
185+
186+ public function test_transactionWithoutPipeline () {
187+ $ Redis = static ::$ Redis ;
188+
189+ /** @var Pipeline $Pipeline */
190+ $ this ->assertSame (true , $ Redis ->multi ());
191+ $ this ->assertSame ('QUEUED ' , $ Redis ->set ('foo ' , 'foo ' ));
192+ $ this ->assertSame ('QUEUED ' , $ Redis ->set ('bar ' , 'bar ' ));
193+ $ this ->assertSame ('QUEUED ' , $ Redis ->get ('bar ' ));
194+ $ this ->assertSame ('QUEUED ' , $ Redis ->hincrby ('foo ' , 'foo ' , 1 ));
195+ $ this ->assertSame ('QUEUED ' , $ Redis ->lpush ('bar ' , 'bar ' ));
196+ $ this ->assertSame ('QUEUED ' , $ Redis ->set ('bar ' , 'new ' ));
197+ $ this ->assertSame ('QUEUED ' , $ Redis ->get ('bar ' ));
198+ $ this ->assertSame ('QUEUED ' , $ Redis ->echo ('hello word ' ));
199+ $ this ->assertSame ('QUEUED ' , $ Redis ->time ());
200+ $ result = $ Redis ->exec ();
201+
202+ $ this ->assertSame (9 , count ($ result ));
147203 $ this ->assertSame (true , $ result [0 ]);
148204 $ this ->assertSame (true , $ result [1 ]);
149205 $ this ->assertSame ('bar ' , $ result [2 ]);
@@ -152,6 +208,8 @@ public function test_transaction() {
152208 $ this ->assertSame (true , $ result [5 ]);
153209 $ this ->assertSame ('new ' , $ result [6 ]);
154210 $ this ->assertSame ('hello word ' , $ result [7 ]);
211+ $ this ->assertSame (true , is_string ($ result [8 ]));
212+ $ this ->assertSame (true , is_numeric ($ result [8 ][0 ]));
155213 }
156214
157215}
0 commit comments