getCommand(); $command->setArguments($actualArguments); $this->assertSameValues($expectedArguments, $command->getArguments()); } /** * @group disconnected */ public function testParseResponse(): void { $this->assertSame(1, $this->getCommand()->parseResponse(1)); } /** * @group connected * @group relay-resp3 * @dataProvider queryProvider * @param array $createArguments * @param array $profileArguments * @return void * @requiresRediSearchVersion >= 2.2.0 */ public function testProfileReturnsPerformanceInformationAboutGivenQuery( array $createArguments, array $profileArguments ): void { $redis = $this->getClient(); $this->assertEquals('OK', $redis->ftcreate(...$createArguments)); $this->assertNotEmpty($redis->ftprofile(...$profileArguments)); } /** * @group connected * @return void * @requiresRediSearchVersion >= 2.2.0 */ public function testThrowsExceptionOnNonExistingIndex(): void { $redis = $this->getClient(); $this->expectException(ServerException::class); $redis->ftprofile('index', (new ProfileArguments())->search()->query('query')); } public function argumentsProvider(): array { return [ 'with default arguments - SEARCH' => [ ['index', (new ProfileArguments())->search()->query('query')], ['index', 'SEARCH', 'QUERY', 'query'], ], 'with default arguments - AGGREGATE' => [ ['index', (new ProfileArguments())->aggregate()->query('query')], ['index', 'AGGREGATE', 'QUERY', 'query'], ], 'with LIMITED modifier' => [ ['index', (new ProfileArguments())->aggregate()->limited()->query('query')], ['index', 'AGGREGATE', 'LIMITED', 'QUERY', 'query'], ], ]; } public function queryProvider(): array { return [ 'with SEARCH context' => [ ['index', [new TextField('text_field')]], ['index', (new ProfileArguments())->search()->query('hello world')], ], 'with AGGREGATE context' => [ ['index', [new TextField('text_field')]], ['index', (new ProfileArguments())->aggregate()->query('hello world')], ], ]; } }