[OptionsResolver] fix removing normalizers
This commit is contained in:
parent
a1e6cfbe15
commit
5a53821ca3
@ -143,6 +143,7 @@ class Options implements \ArrayAccess, \Iterator, \Countable
|
|||||||
|
|
||||||
$this->options = array();
|
$this->options = array();
|
||||||
$this->lazy = array();
|
$this->lazy = array();
|
||||||
|
$this->normalizers = array();
|
||||||
|
|
||||||
foreach ($options as $option => $value) {
|
foreach ($options as $option => $value) {
|
||||||
$this->overload($option, $value);
|
$this->overload($option, $value);
|
||||||
|
@ -469,4 +469,49 @@ class OptionsTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
$this->assertTrue($this->options->has('foo'));
|
$this->assertTrue($this->options->has('foo'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRemoveOptionAndNormalizer()
|
||||||
|
{
|
||||||
|
$this->options->set('foo1', 'bar');
|
||||||
|
$this->options->setNormalizer('foo1', function (Options $options) {
|
||||||
|
return '';
|
||||||
|
});
|
||||||
|
$this->options->set('foo2', 'bar');
|
||||||
|
$this->options->setNormalizer('foo2', function (Options $options) {
|
||||||
|
return '';
|
||||||
|
});
|
||||||
|
|
||||||
|
$this->options->remove('foo2');
|
||||||
|
$this->assertEquals(array('foo1' => ''), $this->options->all());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testReplaceOptionAndNormalizer()
|
||||||
|
{
|
||||||
|
$this->options->set('foo1', 'bar');
|
||||||
|
$this->options->setNormalizer('foo1', function (Options $options) {
|
||||||
|
return '';
|
||||||
|
});
|
||||||
|
$this->options->set('foo2', 'bar');
|
||||||
|
$this->options->setNormalizer('foo2', function (Options $options) {
|
||||||
|
return '';
|
||||||
|
});
|
||||||
|
|
||||||
|
$this->options->replace(array('foo1' => 'new'));
|
||||||
|
$this->assertEquals(array('foo1' => 'new'), $this->options->all());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testClearOptionAndNormalizer()
|
||||||
|
{
|
||||||
|
$this->options->set('foo1', 'bar');
|
||||||
|
$this->options->setNormalizer('foo1', function (Options $options) {
|
||||||
|
return '';
|
||||||
|
});
|
||||||
|
$this->options->set('foo2', 'bar');
|
||||||
|
$this->options->setNormalizer('foo2', function (Options $options) {
|
||||||
|
return '';
|
||||||
|
});
|
||||||
|
|
||||||
|
$this->options->clear();
|
||||||
|
$this->assertEmpty($this->options->all());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user