<?php namespace Abraham\TwitterOAuth\Tests; use Abraham\TwitterOAuth\Util\JsonDecoder; class JsonDecoderTest extends \PHPUnit_Framework_TestCase { /** * @dataProvider jsonProvider */ public function testDecode($input, $asArray, $expected) { $this->assertEquals($expected, JsonDecoder::decode($input, $asArray)); } public function jsonProvider() { return array( array('[]', true, array()), array('[1,2,3]', true, array(1, 2, 3)), array('[{"id": 556179961825226750}]', true, array(array('id' => 556179961825226750))), array('[]', false, array()), array('[1,2,3]', false, array(1, 2, 3)), array( '[{"id": 556179961825226750}]', false, array( $this->getClass(function ($object) { $object->id = 556179961825226750; return $object; }) ) ), ); } /** * @param callable $callable * * @return stdClass */ private function getClass(\Closure $callable) { $object = new \stdClass(); return $callable($object); } }