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
|
<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\Framework\Constraint;
use const JSON_ERROR_CTRL_CHAR;
use const JSON_ERROR_DEPTH;
use const JSON_ERROR_NONE;
use const JSON_ERROR_STATE_MISMATCH;
use const JSON_ERROR_SYNTAX;
use const JSON_ERROR_UTF8;
use PHPUnit\Framework\TestCase;
/**
* @small
*/
final class JsonMatchesErrorMessageProviderTest extends TestCase
{
public static function determineJsonErrorDataprovider(): array
{
return [
'JSON_ERROR_NONE' => [
null, JSON_ERROR_NONE, '',
],
'JSON_ERROR_DEPTH' => [
'Maximum stack depth exceeded', JSON_ERROR_DEPTH, '',
],
'prefixed JSON_ERROR_DEPTH' => [
'TUX: Maximum stack depth exceeded', JSON_ERROR_DEPTH, 'TUX: ',
],
'JSON_ERROR_STATE_MISMatch' => [
'Underflow or the modes mismatch', JSON_ERROR_STATE_MISMATCH, '',
],
'JSON_ERROR_CTRL_CHAR' => [
'Unexpected control character found', JSON_ERROR_CTRL_CHAR, '',
],
'JSON_ERROR_SYNTAX' => [
'Syntax error, malformed JSON', JSON_ERROR_SYNTAX, '',
],
'JSON_ERROR_UTF8`' => [
'Malformed UTF-8 characters, possibly incorrectly encoded',
JSON_ERROR_UTF8,
'',
],
'Invalid error indicator' => [
'Unknown error', 55, '',
],
];
}
public static function translateTypeToPrefixDataprovider(): array
{
return [
'expected' => ['Expected value JSON decode error - ', 'expected'],
'actual' => ['Actual value JSON decode error - ', 'actual'],
'default' => ['', ''],
];
}
/**
* @dataProvider translateTypeToPrefixDataprovider
*
* @throws \PHPUnit\Framework\ExpectationFailedException
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
*/
public function testTranslateTypeToPrefix($expected, $type): void
{
$this->assertEquals(
$expected,
JsonMatchesErrorMessageProvider::translateTypeToPrefix($type)
);
}
/**
* @testdox Determine JSON error $_dataName
* @dataProvider determineJsonErrorDataprovider
*
* @throws \PHPUnit\Framework\ExpectationFailedException
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
*/
public function testDetermineJsonError($expected, $error, $prefix): void
{
$this->assertEquals(
$expected,
JsonMatchesErrorMessageProvider::determineJsonError(
(string) $error,
$prefix
)
);
}
}
|