[Form] Added type check to ScalarToChoiceTransformer

This commit is contained in:
stloyd 2011-08-25 15:31:07 +02:00 committed by Joseph Bielawski
parent a74ae9d325
commit 95049ef902
2 changed files with 25 additions and 0 deletions

View File

@ -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;
}
}

View File

@ -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());
}
}