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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
<?php
namespace Pheanstalk;
use Pheanstalk\Contract\CommandInterface;
use Pheanstalk\Contract\JobIdInterface;
use Pheanstalk\Contract\ResponseInterface;
use Pheanstalk\Contract\ResponseParserInterface;
use PHPUnit\Framework\TestCase;
/**
* Tests exceptions thrown by ResponseParser implementations.
*
* @author Paul Annesley
*/
class ResponseParserExceptionTest extends TestCase
{
public function testDeleteNotFound()
{
$this->expectServerExceptionForResponse(
new Command\DeleteCommand(new JobId(5)),
'NOT_FOUND'
);
}
public function testReleaseBuried()
{
$this->expectServerExceptionForResponse(
new Command\ReleaseCommand(new JobId(5), 1, 0),
'BURIED'
);
}
public function testReleaseNotFound()
{
$this->expectServerExceptionForResponse(
new Command\ReleaseCommand(new JobId(5), 1, 0),
'NOT_FOUND'
);
}
public function testBuryNotFound()
{
$this->expectServerExceptionForResponse(
new Command\BuryCommand(new JobId(5), 1),
'NOT_FOUND'
);
}
public function testIgnoreNotIgnored()
{
$this->expectServerExceptionForResponse(
new Command\IgnoreCommand('test'),
'NOT_IGNORED'
);
}
public function testTouchNotFound()
{
$this->expectServerExceptionForResponse(
new Command\TouchCommand(new JobId(5)),
'NOT_FOUND'
);
}
public function testPeekNotFound()
{
$this->expectServerExceptionForResponse(
new Command\PeekJobCommand(new JobId(5)),
'NOT_FOUND'
);
}
public function testPeekInvalidSubject()
{
$this->expectException('\Pheanstalk\Exception\CommandException');
new Command\PeekCommand('invalid');
}
public function testYamlResponseParseInvalidMode()
{
$this->expectException('\InvalidArgumentException');
new YamlResponseParser('test');
}
public function testYamlResponseParserNotFound()
{
$this->expectServerExceptionForResponse(
new YamlResponseParser(YamlResponseParser::MODE_DICT),
ResponseInterface::RESPONSE_NOT_FOUND
);
}
public function testYamlResponseParserUnhandledResponse()
{
$this->expectServerExceptionForResponse(
new YamlResponseParser(YamlResponseParser::MODE_DICT),
ResponseInterface::RESPONSE_OUT_OF_MEMORY
);
}
public function testPauseTubeNotFound()
{
$this->expectServerExceptionForResponse(
new Command\PauseTubeCommand('not-a-tube', 1),
ResponseInterface::RESPONSE_NOT_FOUND
);
}
public function testPutUnhandledResponse()
{
$this->expectExceptionForResponse(
new Command\PutCommand('data', 0, 0, 0),
'unhandled response'
);
}
private function expectExceptionForResponse(
ResponseParserInterface $parser,
string $response,
string $type = Exception::class
) {
$this->expectException($type);
$parser->parseResponse($response, null);
}
private function expectServerExceptionForResponse(ResponseParserInterface $parser, string $response)
{
$this->expectExceptionForResponse(
$parser,
$response,
\Pheanstalk\Exception\ServerException::class
);
}
}
|