Files
Services_JSON/tests/FirstTest.php
T
jorgecc a8dcaddec5 2.3
2022-11-07 19:47:01 -03:00

68 lines
2.2 KiB
PHP

<?php declare(strict_types=1);
use eftec\ServicesJson\Services_JSON;
use PHPUnit\Framework\TestCase;
final class FirstTest extends TestCase
{
public function testDecode(): void
{
$this->assertEquals(
(object)[ 'k1' => "v1",'k2'=>'v2']
,Services_JSON::decode('{"k1":"v1","k2":"v2"}')
);
$this->assertEquals(
(object)[ 'k1' => "v1\n\t\f\r",'k2'=>'v2']
,Services_JSON::decode('{"k1":"v1\n\t\f\r","k2":"v2"}')
);
$this->assertEquals(
[ 'k1' => 'v1','k2'=>2]
,Services_JSON::decode('{"k1":"v1","k2":2}',Services_JSON::GET_ARRAY)
);
$this->assertEquals(
[ 'k1' => 'v1','k2'=>2]
,Services_JSON::decode('{"k1":"v1","k2":2 /* comment */}',Services_JSON::GET_ARRAY)
);
$this->assertEquals(
[ 'k1' => 'v1','k2'=>2]
,Services_JSON::decode('{k1:"v1",k2:2}',Services_JSON::GET_ARRAY)
);
$this->assertEquals(
[ 'k1' => 'v1','k2'=>2]
,Services_JSON::decode('"k1":"v1", k2:2',
Services_JSON::GET_ARRAY | Services_JSON::DECODE_FIX_ROOT)
);
$this->assertEquals(
[ 1,2,3]
,Services_JSON::decode('1,2,3',
Services_JSON::GET_ARRAY | Services_JSON::DECODE_FIX_ROOT)
);
$this->assertEquals(
[1]
,Services_JSON::decode('1',
Services_JSON::GET_ARRAY | Services_JSON::DECODE_FIX_ROOT)
);
$this->assertEquals(
['a'=>1]
,Services_JSON::decode('a:1',
Services_JSON::GET_ARRAY | Services_JSON::DECODE_FIX_ROOT)
);
}
public function testEncode(): void
{
$this->assertEquals(
'{"k1":"v1","k2":"v2"}'
,Services_JSON::encode([ 'k1' => 'v1','k2'=>'v2'])
);
$this->assertEquals(
'{"k1":"v1","k2":[1,2,3]}'
,Services_JSON::encode((object)[ 'k1' => 'v1','k2'=>[1,2,3]])
);
$this->assertEquals(
'{"k\"1":"v1","k2":[1,2,3],"k3":{"k4":{"0":1,"1":2,"k5":[1,2]}}}'
,Services_JSON::encode((object)[ 'k"1' => 'v1','k2'=>[1,2,3],'k3'=>['k4'=>[1,2,'k5'=>[1,2]]]])
);
}
}