[Form] Added type check to ScalarToChoiceTransformer
This commit is contained in:
parent
a74ae9d325
commit
95049ef902
@ -13,16 +13,25 @@ namespace Symfony\Component\Form\Extension\Core\DataTransformer;
|
||||
|
||||
use Symfony\Component\Form\Util\FormUtil;
|
||||
use Symfony\Component\Form\DataTransformerInterface;
|
||||
use Symfony\Component\Form\Exception\UnexpectedTypeException;
|
||||
|
||||
class ScalarToChoiceTransformer implements DataTransformerInterface
|
||||
{
|
||||
public function transform($value)
|
||||
{
|
||||
if (null !== $value && !is_scalar($value)) {
|
||||
throw new UnexpectedTypeException($value, 'scalar');
|
||||
}
|
||||
|
||||
return FormUtil::toArrayKey($value);
|
||||
}
|
||||
|
||||
public function reverseTransform($value)
|
||||
{
|
||||
if (null !== $value && !is_scalar($value)) {
|
||||
throw new UnexpectedTypeException($value, 'scalar');
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
@ -62,4 +62,20 @@ class ScalarToChoiceTransformerTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
$this->assertSame($out, $this->transformer->transform($in));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Form\Exception\UnexpectedTypeException
|
||||
*/
|
||||
public function testTransformExpectsScalar()
|
||||
{
|
||||
$this->transformer->transform(array());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Symfony\Component\Form\Exception\UnexpectedTypeException
|
||||
*/
|
||||
public function testReverseTransformExpectsScalar()
|
||||
{
|
||||
$this->transformer->reverseTransform(array());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user