reset constraint options
This commit is contained in:
parent
eae5a9ba0b
commit
4c6ddd4737
|
@ -129,6 +129,9 @@ abstract class Constraint
|
|||
unset($options['value']);
|
||||
}
|
||||
|
||||
if (is_array($options)) {
|
||||
reset($options);
|
||||
}
|
||||
if (is_array($options) && count($options) > 0 && is_string(key($options))) {
|
||||
foreach ($options as $option => $value) {
|
||||
if (array_key_exists($option, $knownOptions)) {
|
||||
|
|
|
@ -206,4 +206,35 @@ class ConstraintTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
Constraint::getErrorName(1);
|
||||
}
|
||||
|
||||
public function testOptionsAsDefaultOption()
|
||||
{
|
||||
$constraint = new ConstraintA($options = array('value1'));
|
||||
|
||||
$this->assertEquals($options, $constraint->property2);
|
||||
|
||||
$constraint = new ConstraintA($options = array('value1', 'property1' => 'value2'));
|
||||
|
||||
$this->assertEquals($options, $constraint->property2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Validator\Exception\InvalidOptionsException
|
||||
* @expectedExceptionMessage The options "0", "5" do not exist
|
||||
*/
|
||||
public function testInvalidOptions()
|
||||
{
|
||||
new ConstraintA(array('property2' => 'foo', 'bar', 5 => 'baz'));
|
||||
}
|
||||
|
||||
public function testOptionsWithInvalidInternalPointer()
|
||||
{
|
||||
$options = array('property1' => 'foo');
|
||||
next($options);
|
||||
next($options);
|
||||
|
||||
$constraint = new ConstraintA($options);
|
||||
|
||||
$this->assertEquals('foo', $constraint->property1);
|
||||
}
|
||||
}
|
||||
|
|
Reference in New Issue