You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
<?php |
|
|
|
namespace yiiunit\framework\db\pgsql; |
|
|
|
use yii\db\pgsql\ArrayParser; |
|
use yiiunit\TestCase; |
|
|
|
class ArrayParserTest extends TestCase |
|
{ |
|
/** |
|
* @var ArrayParser |
|
*/ |
|
protected $arrayParser; |
|
|
|
protected function setUp() |
|
{ |
|
parent::setUp(); |
|
|
|
$this->arrayParser = new ArrayParser(); |
|
} |
|
|
|
public function convertProvider() |
|
{ |
|
return [ |
|
['{}', []], |
|
['{,}', [null, null]], |
|
['{,,}', [null, null, null]], |
|
['{1,2,}', ['1','2',null]], |
|
['{{},,1}', [[], null, '1']], |
|
['{"{\"key\":\"value\"}",NULL,"NULL","{}"}', ['{"key":"value"}', null, "NULL", '{}']], |
|
['{boo,",",,test}', ['boo', ',', null, 'test']], |
|
['{"string1","str\\\\in\\"g2","str,ing3"}', ['string1','str\\in"g2','str,ing3']], |
|
['{{1,2,3},{4,5,6},{7,8,9}}', [['1','2','3'], ['4','5','6'], ['7','8','9']]], |
|
['{utf8€,👍}', ['utf8€', '👍']], |
|
['{"","","{}",{}}', ['', '', '{}', []]] |
|
]; |
|
} |
|
|
|
/** |
|
* @dataProvider convertProvider |
|
*/ |
|
public function testConvert($string, $expected) |
|
{ |
|
$this->assertSame($expected, $this->arrayParser->parse($string)); |
|
} |
|
}
|
|
|