1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<?php
declare(strict_types=1);
namespace Pheanstalk\Tests\Unit\Command;
use Pheanstalk\Command\TubeCommand;
use Pheanstalk\Exception\TubeNotFoundException;
use Pheanstalk\Exception\UnsupportedResponseException;
use Pheanstalk\Values\RawResponse;
use Pheanstalk\Values\ResponseType;
use Pheanstalk\Values\TubeCommandTemplate;
use Pheanstalk\Values\TubeName;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(TubeCommand::class)]
final class ConcreteTubeCommandTest extends TubeCommandTestBase
{
protected static function getSupportedResponses(): array
{
return [
ResponseType::NotFound
];
}
protected function getSubject(?TubeName $tube = null): TubeCommand
{
/** @psalm-suppress InternalClass */
return new class($tube ?? new TubeName('default')) extends TubeCommand {
public function interpret(
RawResponse $response
): never {
throw match ($response->type) {
ResponseType::NotFound => new TubeNotFoundException($this->tube),
default => new UnsupportedResponseException($response->type)
};
}
protected function getCommandTemplate(): TubeCommandTemplate
{
return new TubeCommandTemplate("concrete {tube}");
}
};
}
}
|