mirror of
https://github.com/wallabag/wallabag.git
synced 2025-07-22 17:18:37 +00:00
Add tests for the StringToListTransformer class
This commit is contained in:
parent
f530f7f5e1
commit
003fa77438
2 changed files with 62 additions and 2 deletions
|
@ -6,10 +6,20 @@ use Doctrine\Common\Persistence\ObjectManager;
|
||||||
use Symfony\Component\Form\DataTransformerInterface;
|
use Symfony\Component\Form\DataTransformerInterface;
|
||||||
use Symfony\Component\Form\Exception\TransformationFailedException;
|
use Symfony\Component\Form\Exception\TransformationFailedException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transforms a comma-separated list to a proper PHP array.
|
||||||
|
* Example: the string "foo, bar" will become the array ["foo", "bar"]
|
||||||
|
*/
|
||||||
class StringToListTransformer implements DataTransformerInterface
|
class StringToListTransformer implements DataTransformerInterface
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
private $separator;
|
private $separator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $separator The separator used in the list.
|
||||||
|
*/
|
||||||
public function __construct($separator = ',')
|
public function __construct($separator = ',')
|
||||||
{
|
{
|
||||||
$this->separator = $separator;
|
$this->separator = $separator;
|
||||||
|
@ -40,10 +50,10 @@ class StringToListTransformer implements DataTransformerInterface
|
||||||
*/
|
*/
|
||||||
public function reverseTransform($string)
|
public function reverseTransform($string)
|
||||||
{
|
{
|
||||||
if (!$string) {
|
if ($string === null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return array_filter(array_map('trim', explode($this->separator, $string)));
|
return array_values(array_filter(array_map('trim', explode($this->separator, $string))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Wallabag\CoreBundle\Tests\Form\DataTransformer;
|
||||||
|
|
||||||
|
use Wallabag\CoreBundle\Form\DataTransformer\StringToListTransformer;
|
||||||
|
|
||||||
|
class StringToListTransformerTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @dataProvider transformProvider
|
||||||
|
*/
|
||||||
|
public function testTransformWithValidData($inputData, $expectedResult)
|
||||||
|
{
|
||||||
|
$transformer = new StringToListTransformer();
|
||||||
|
|
||||||
|
$this->assertSame($expectedResult, $transformer->transform($inputData));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function transformProvider()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array( null, '' ),
|
||||||
|
array( array(), '' ),
|
||||||
|
array( array('single value'), 'single value' ),
|
||||||
|
array( array('first value', 'second value'), 'first value,second value' ),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider reverseTransformProvider
|
||||||
|
*/
|
||||||
|
public function testReverseTransformWithValidData($inputData, $expectedResult)
|
||||||
|
{
|
||||||
|
$transformer = new StringToListTransformer();
|
||||||
|
|
||||||
|
$this->assertSame($expectedResult, $transformer->reverseTransform($inputData));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function reverseTransformProvider()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array( null, null ),
|
||||||
|
array( '', array() ),
|
||||||
|
array( 'single value', array('single value') ),
|
||||||
|
array( 'first value,second value', array('first value', 'second value') ),
|
||||||
|
array( 'first value, second value', array('first value', 'second value') ),
|
||||||
|
array( 'first value, , second value', array('first value', 'second value') ),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue