Fixes #7640: Implemented custom data types support. Added JSON support for MySQL and PostgreSQL, array support for PostgreSQL

This commit is contained in:
Dmitry Naumenko
2018-02-04 23:59:14 +02:00
committed by Alexander Makarov
parent 5afe0a0d36
commit d16586334d
71 changed files with 3329 additions and 686 deletions

View File

@ -0,0 +1,45 @@
<?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));
}
}