getCommand(); $command->setArguments($arguments); $this->assertSame($expected, $command->getArguments()); } /** * @group disconnected */ public function testParseResponse(): void { $this->assertSame(1, $this->getCommand()->parseResponse(1)); } /** * @group connected * @dataProvider membersProvider * @requiresRedisVersion >= 6.2.0 */ public function testReturnsScoresAssociatedWithMembers( string $key, array $membersDictionary, array $expectedResponse ): void { $redis = $this->getClient(); $notExpectedMember = 'not_expected'; /** @var string[] $members */ $members = array_filter($membersDictionary, static function ($item) { return is_string($item); }); $redis->zadd($key, ...$membersDictionary); $this->assertEquals($expectedResponse, $redis->zmscore($key, ...$members)); $this->assertNull($redis->zmscore($key, $notExpectedMember)[0]); } /** * @group connected * @return void * @requiresRedisVersion >= 6.2.0 */ public function testReturnsScoresAssociatedWithMembersResp3(): void { $redis = $this->getResp3Client(); $notExpectedMember = 'not_expected'; /** @var string[] $members */ $members = array_filter([1, 'member1', 2, 'member2', 3, 'member3'], static function ($item) { return is_string($item); }); $redis->zadd('test-zscore', 1, 'member1', 2, 'member2', 3, 'member3'); $this->assertSame([1.0, 2.0, 3.0], $redis->zmscore('test-zscore', ...$members)); $this->assertNull($redis->zmscore('test-zscore', $notExpectedMember)[0]); } /** * @group connected * @requiresRedisVersion >= 6.2.0 */ public function testThrowsExceptionOnWrongType(): void { $this->expectException(ServerException::class); $this->expectExceptionMessage('Operation against a key holding the wrong kind of value'); $redis = $this->getClient(); $redis->set('foo', 'bar'); $redis->zmscore('foo', ''); } public function membersProvider(): array { return [['test-zscore', [1, 'member1', 2, 'member2', 3, 'member3'], ['1', '2', '3']]]; } }