getExpectedCommand(); return $command instanceof Command\CommandInterface ? $command : new $command(); } /** * Returns a new client instance. * * @param bool $flushdb Flush selected database before returning the client * @return Client */ public function getClient(bool $flushdb = true): Client { $commands = $this->getCommandFactory(); if (!$commands->supports($id = $this->getExpectedId())) { $this->markTestSkipped( "The current command factory does not support command $id" ); } $client = $this->createClient(null, null, $flushdb); return $client; } /** * Verifies if the command implements the prefixable interface. * * @return bool */ protected function isPrefixable(): bool { return $this->getCommand() instanceof Command\PrefixableCommandInterface; } /** * Returns a new command instance with the specified arguments. * * @param ... List of arguments for the command * * @return CommandInterface */ protected function getCommandWithArguments(...$arguments): CommandInterface { return $this->getCommandWithArgumentsArray($arguments); } /** * Returns a new command instance with the specified arguments. * * @param array $arguments Arguments for the command * * @return CommandInterface */ protected function getCommandWithArgumentsArray(array $arguments): CommandInterface { $command = $this->getCommand(); $command->setArguments($arguments); return $command; } /** * @group disconnected */ public function testCommandId(): void { $command = $this->getCommand(); $this->assertInstanceOf('Predis\Command\CommandInterface', $command); $this->assertEquals($this->getExpectedId(), $command->getId()); } /** * @group disconnected */ public function testRawArguments(): void { $expected = ['1st', '2nd', '3rd', '4th']; $command = $this->getCommand(); $command->setRawArguments($expected); $this->assertSame($expected, $command->getArguments()); } }