* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * @since File available since Release 3.7.0 */ class Framework_Constraint_JsonMatches_ErrorMessageProviderTest extends PHPUnit_Framework_TestCase { /** * @dataProvider translateTypeToPrefixDataprovider * @covers PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::translateTypeToPrefix */ public function testTranslateTypeToPrefix($expected, $type) { $this->assertEquals( $expected, PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::translateTypeToPrefix($type) ); } /** * @dataProvider determineJsonErrorDataprovider * @covers PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::determineJsonError */ public function testDetermineJsonError($expected, $error, $prefix) { $this->assertEquals( $expected, PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider::determineJsonError( $error, $prefix ) ); } public static function determineJsonErrorDataprovider() { return array( 'JSON_ERROR_NONE' => array( null, 'json_error_none', '' ), 'JSON_ERROR_DEPTH' => array( 'Maximum stack depth exceeded', JSON_ERROR_DEPTH, '' ), 'prefixed JSON_ERROR_DEPTH' => array( 'TUX: Maximum stack depth exceeded', JSON_ERROR_DEPTH, 'TUX: ' ), 'JSON_ERROR_STATE_MISMatch' => array( 'Underflow or the modes mismatch', JSON_ERROR_STATE_MISMATCH, '' ), 'JSON_ERROR_CTRL_CHAR' => array( 'Unexpected control character found', JSON_ERROR_CTRL_CHAR, '' ), 'JSON_ERROR_SYNTAX' => array( 'Syntax error, malformed JSON', JSON_ERROR_SYNTAX, '' ), 'JSON_ERROR_UTF8`' => array( 'Malformed UTF-8 characters, possibly incorrectly encoded', JSON_ERROR_UTF8, '' ), 'Invalid error indicator' => array( 'Unknown error', 55, '' ), ); } public static function translateTypeToPrefixDataprovider() { return array( 'expected' => array('Expected value JSON decode error - ', 'expected'), 'actual' => array('Actual value JSON decode error - ', 'actual'), 'default' => array('', ''), ); } }