[DI] Add CSV env var processor tests

This commit is contained in:
Roland Franssen 2019-09-28 11:54:52 +02:00
parent fbfdebc487
commit 82f341864c
2 changed files with 34 additions and 1 deletions

View File

@ -236,7 +236,7 @@ class EnvVarProcessor implements EnvVarProcessorInterface
}
if ('csv' === $prefix) {
return str_getcsv($env);
return str_getcsv($env, ',', '"', \PHP_VERSION_ID >= 70400 ? '' : '\\');
}
if ('trim' === $prefix) {

View File

@ -478,4 +478,37 @@ class EnvVarProcessorTest extends TestCase
$this->assertEquals('foo', $result);
}
/**
* @dataProvider validCsv
*/
public function testGetEnvCsv($value, $processed)
{
$processor = new EnvVarProcessor(new Container());
$result = $processor->getEnv('csv', 'foo', function ($name) use ($value) {
$this->assertSame('foo', $name);
return $value;
});
$this->assertSame($processed, $result);
}
public function validCsv()
{
$complex = <<<'CSV'
,"""","foo""","\""",\,foo\
CSV;
return [
['', [null]],
[',', ['', '']],
['1', ['1']],
['1,2," 3 "', ['1', '2', ' 3 ']],
['\\,\\\\', ['\\', '\\\\']],
[$complex, \PHP_VERSION_ID >= 70400 ? ['', '"', 'foo"', '\\"', '\\', 'foo\\'] : ['', '"', 'foo"', '\\"",\\,foo\\']],
[null, null],
];
}
}