getCommand(); $command->setArguments($actualArguments); $this->assertSame($expectedArguments, $command->getArguments()); } /** * @group disconnected */ public function testParseResponse(): void { $this->assertSame(1, $this->getCommand()->parseResponse(1)); } /** * @group connected * @return void * @requiresRedisVersion >= 7.0.0 */ public function testTransferStreamOwnershipToGivenConsumerGroup(): void { $redis = $this->getClient(); $entryId = $redis->xadd('stream', ['field' => 'value']); $this->assertEquals('OK', $redis->xgroup->create('stream', 'group', $entryId)); $nextEntryId = $redis->xadd('stream', ['newField' => 'newValue']); $redis->xreadgroup( 'group', 'consumer', null, null, false, 'stream', '>'); $expectedResponse = [ '0-0', [ [ $nextEntryId, ['newField', 'newValue'], ], ], [], ]; $this->assertSame( $expectedResponse, $redis->xautoclaim('stream', 'group', 'another_consumer', 0, $entryId) ); } /** * @group connected * @return void * @requiresRedisVersion >= 6.2.0 */ public function testThrowsExceptionOnNonExistingConsumerGroupOrStream(): void { $redis = $this->getClient(); $this->expectException(ServerException::class); $this->expectExceptionMessage( "NOGROUP No such key 'stream' or consumer group 'group'" ); $redis->xautoclaim('stream', 'group', 'another_consumer', 0, '0-0'); } public function argumentsProvider(): array { return [ 'with default arguments' => [ ['key', 'group', 'consumer', 10000, '0-0'], ['key', 'group', 'consumer', 10000, '0-0'], ], 'with COUNT modifier' => [ ['key', 'group', 'consumer', 10000, '0-0', 20], ['key', 'group', 'consumer', 10000, '0-0', 'COUNT', 20], ], 'with JUSTID modifier' => [ ['key', 'group', 'consumer', 10000, '0-0', null, true], ['key', 'group', 'consumer', 10000, '0-0', 'JUSTID'], ], 'with all arguments' => [ ['key', 'group', 'consumer', 10000, '0-0', 10, true], ['key', 'group', 'consumer', 10000, '0-0', 'COUNT', 10, 'JUSTID'], ], ]; } }