namespace Symfony\Component\DependencyInjection\Tests\ParameterBag;
use PHPUnit\Framework\TestCase;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
use Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException;
+use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
class ParameterBagTest extends TestCase
{
));
$bag->remove('foo');
$this->assertEquals(array('bar' => 'bar'), $bag->all(), '->remove() removes a parameter');
- $bag->remove('BAR');
- $this->assertEquals(array(), $bag->all(), '->remove() converts key to lowercase before removing');
}
public function testGetSet()
$bag->set('foo', 'baz');
$this->assertEquals('baz', $bag->get('foo'), '->set() overrides previously set parameter');
- $bag->set('Foo', 'baz1');
- $this->assertEquals('baz1', $bag->get('foo'), '->set() converts the key to lowercase');
- $this->assertEquals('baz1', $bag->get('FOO'), '->get() converts the key to lowercase');
-
try {
$bag->get('baba');
$this->fail('->get() throws an Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException if the key does not exist');
{
$bag = new ParameterBag(array('foo' => 'bar'));
$this->assertTrue($bag->has('foo'), '->has() returns true if a parameter is defined');
- $this->assertTrue($bag->has('Foo'), '->has() converts the key to lowercase');
$this->assertFalse($bag->has('bar'), '->has() returns false if a parameter is not defined');
}
+ /**
+ * @group legacy
+ * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "BAR" instead of "bar" is deprecated since Symfony 3.4.
+ * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "Foo" instead of "foo" is deprecated since Symfony 3.4.
+ * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "FOO" instead of "foo" is deprecated since Symfony 3.4.
+ * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "Foo" instead of "foo" is deprecated since Symfony 3.4.
+ */
+ public function testMixedCase()
+ {
+ $bag = new ParameterBag(array(
+ 'foo' => 'foo',
+ 'bar' => 'bar',
+ ));
+
+ $bag->remove('BAR');
+ $this->assertEquals(array('foo' => 'foo'), $bag->all(), '->remove() converts key to lowercase before removing');
+
+ $bag->set('Foo', 'baz1');
+ $this->assertEquals('baz1', $bag->get('foo'), '->set() converts the key to lowercase');
+ $this->assertEquals('baz1', $bag->get('FOO'), '->get() converts the key to lowercase');
+
+ $this->assertTrue($bag->has('Foo'), '->has() converts the key to lowercase');
+ }
+
public function testResolveValue()
{
$bag = new ParameterBag(array());