Skip to content

Commit 10888ff

Browse files
authored
Added test cases for pipeline of redis. (#4997)
1 parent 3571d3f commit 10888ff

File tree

2 files changed

+42
-3
lines changed

2 files changed

+42
-3
lines changed

tests/RedisProxyTest.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313

1414
use Hyperf\Config\Config;
1515
use Hyperf\Contract\ConfigInterface;
16+
use Hyperf\Contract\StdoutLoggerInterface;
1617
use Hyperf\Di\Container;
18+
use Hyperf\Engine\Channel as Chan;
1719
use Hyperf\Pool\Channel;
1820
use Hyperf\Pool\LowFrequencyInterface;
1921
use Hyperf\Pool\PoolOption;
@@ -117,13 +119,48 @@ public function testRedisHScan()
117119
$this->assertSame(0, $it);
118120
}
119121

122+
public function testRedisPipeline()
123+
{
124+
$redis = $this->getRedis();
125+
126+
$redis->rPush('pipeline:list', 'A');
127+
$redis->rPush('pipeline:list', 'B');
128+
$redis->rPush('pipeline:list', 'C');
129+
$redis->rPush('pipeline:list', 'D');
130+
$redis->rPush('pipeline:list', 'E');
131+
132+
$chan = new Chan(1);
133+
$chan2 = new Chan(1);
134+
go(static function () use ($redis, $chan) {
135+
$redis->pipeline();
136+
usleep(2000);
137+
$redis->lRange('pipeline:list', 0, 1);
138+
$redis->lTrim('pipeline:list', 2, -1);
139+
usleep(1000);
140+
$chan->push($redis->exec());
141+
});
142+
143+
go(static function () use ($redis, $chan2) {
144+
$redis->pipeline();
145+
usleep(1000);
146+
$redis->lRange('pipeline:list', 0, 1);
147+
$redis->lTrim('pipeline:list', 2, -1);
148+
usleep(10000);
149+
$chan2->push($redis->exec());
150+
});
151+
152+
$this->assertSame([['A', 'B'], true], $chan->pop());
153+
$this->assertSame([['C', 'D'], true], $chan2->pop());
154+
}
155+
120156
/**
121157
* @param mixed $optinos
122158
* @return \Redis
123159
*/
124160
private function getRedis($optinos = [])
125161
{
126162
$container = Mockery::mock(Container::class);
163+
$container->shouldReceive('has')->with(StdoutLoggerInterface::class)->andReturnFalse();
127164
$container->shouldReceive('get')->once()->with(ConfigInterface::class)->andReturn(new Config([
128165
'redis' => [
129166
'default' => [

tests/RedisTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,11 @@ public function testRedisSelect()
7070

7171
$this->assertSame(2, $redis->getDatabase());
7272

73-
$res = parallel([function () use ($redis) {
74-
return $redis->get('xxxx');
75-
}]);
73+
$res = parallel([
74+
function () use ($redis) {
75+
return $redis->get('xxxx');
76+
},
77+
]);
7678

7779
$this->assertSame('db:0 name:get argument:xxxx', $res[0]);
7880
}

0 commit comments

Comments
 (0)