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
|
<?php
declare(strict_types=1);
namespace Pheanstalk\Tests\Unit\Command;
use Pheanstalk\Command\JobCommand;
use Pheanstalk\Contract\JobIdInterface;
use Pheanstalk\Exception\JobNotFoundException;
use Pheanstalk\Exception\UnsupportedResponseException;
use Pheanstalk\Values\JobCommandTemplate;
use Pheanstalk\Values\JobId;
use Pheanstalk\Values\RawResponse;
use Pheanstalk\Values\ResponseType;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(JobCommand::class)]
final class ConcreteJobCommandTest extends JobCommandTestBase
{
protected static function getSupportedResponses(): array
{
return [ResponseType::NotFound];
}
protected function getSubject(?JobIdInterface $jobId = null): JobCommand
{
/** @psalm-suppress InternalClass */
return new class($jobId ?? new JobId(5)) extends JobCommand {
public function interpret(
RawResponse $response
): never {
if ($response->type === ResponseType::NotFound) {
throw new JobNotFoundException();
}
throw new UnsupportedResponseException($response->type);
}
protected function getCommandTemplate(): JobCommandTemplate
{
return new JobCommandTemplate("random {id}");
}
};
}
}
|