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 * @return void * @requiresRedisTimeSeriesVersion >= 1.10.13 * @requiresRedisVersion > 6.3.0 */ public function testReturnsInformationAboutGivenTimeSeries(): void { $redis = $this->getClient(); $expectedResponse = ['totalSamples', 0, 'memoryUsage', 4239, 'firstTimestamp', 0, 'lastTimestamp', 0, 'retentionTime', 60000, 'chunkCount', 1, 'chunkSize', 4096, 'chunkType', 'compressed', 'duplicatePolicy', 'max', 'labels', [['sensor_id', '2'], ['area_id', '32']], 'sourceKey', null, 'rules', [], 'ignoreMaxTimeDiff', 0, 'ignoreMaxValDiff', 0]; $arguments = (new CreateArguments()) ->retentionMsecs(60000) ->duplicatePolicy(CommonArguments::POLICY_MAX) ->labels('sensor_id', 2, 'area_id', 32); $this->assertEquals( 'OK', $redis->tscreate('temperature:2:32', $arguments) ); $this->assertEquals($expectedResponse, $redis->tsinfo('temperature:2:32')); } /** * @group connected * @return void * @requiresRedisTimeSeriesVersion >= 1.10.0 */ public function testReturnsInformationAboutGivenTimeSeriesResp3(): void { $redis = $this->getResp3Client(); $expectedResponse = ['totalSamples' => 0, 'memoryUsage' => 4239, 'firstTimestamp' => 0, 'lastTimestamp' => 0, 'retentionTime' => 60000, 'chunkCount' => 1, 'chunkSize' => 4096, 'chunkType' => 'compressed', 'duplicatePolicy' => 'max', 'labels' => ['sensor_id' => '2', 'area_id' => '32'], 'sourceKey' => null, 'rules' => [], 'ignoreMaxTimeDiff' => 0, 'ignoreMaxValDiff' => 0.0]; $arguments = (new CreateArguments()) ->retentionMsecs(60000) ->duplicatePolicy(CommonArguments::POLICY_MAX) ->labels('sensor_id', 2, 'area_id', 32); $this->assertEquals( 'OK', $redis->tscreate('temperature:2:32', $arguments) ); # Timeout so key will be created. $this->sleep(0.1); $this->assertEquals($expectedResponse, $redis->tsinfo('temperature:2:32')); } public function argumentsProvider(): array { return [ 'with default arguments' => [ ['key'], ['key'], ], 'with DEBUG modifier' => [ ['key', (new InfoArguments())->debug()], ['key', 'DEBUG'], ], ]; } }