$t->is($ph->get('foo'), $foo, '->setByRef() sets the value for a key as a reference'); $myfoo = 'bar'; $ph->setByRef('myfoo', $myfoo, 'symfony/mynamespace'); $t->is($ph->get('myfoo', null, 'symfony/mynamespace'), $myfoo, '->setByRef() takes a namespace as its third parameter'); // ->add() $t->diag('->add()'); $foo = 'bar'; $parameters = array('foo' => $foo, 'bar' => 'bar'); $myparameters = array('myfoo' => 'bar', 'mybar' => 'bar'); $ph = new sfNamespacedParameterHolder(); $ph->add($parameters); $ph->add($myparameters, 'symfony/mynamespace'); $t->is($ph->getAll(), $parameters, '->add() adds an array of parameters'); $t->is($ph->getAll('symfony/mynamespace'), $myparameters, '->add() takes a namespace as its second argument'); $foo = 'mybar'; $t->is($ph->getAll(), $parameters, '->add() adds an array of parameters, not a reference'); // ->addByRef() $t->diag('->addByRef()'); $foo = 'bar'; $parameters = array('foo' => &$foo, 'bar' => 'bar'); $myparameters = array('myfoo' => 'bar', 'mybar' => 'bar'); $ph = new sfNamespacedParameterHolder(); $ph->addByRef($parameters); $ph->addByRef($myparameters, 'symfony/mynamespace'); $t->is($parameters, $ph->getAll(), '->add() adds an array of parameters'); $t->is($myparameters, $ph->getAll('symfony/mynamespace'), '->add() takes a namespace as its second argument'); $foo = 'mybar'; $t->is($parameters, $ph->getAll(), '->add() adds a reference of an array of parameters'); // ->serialize() ->unserialize() $t->diag('->serialize() ->unserialize()'); $t->ok($ph == unserialize(serialize($ph)), 'sfNamespacedParameterHolder implements the Serializable interface');
$ph = new sfNamespacedParameterHolder(); $ph->add($parameters); $ph->add($myparameters, 'symfony/mynamespace'); $t->is($ph->getAll(), $parameters, '->add() adds an array of parameters'); $t->is($ph->getAll('symfony/mynamespace'), $myparameters, '->add() takes a namespace as its second argument'); $foo = 'mybar'; $t->is($ph->getAll(), $parameters, '->add() adds an array of parameters, not a reference'); // ->addByRef() $t->diag('->addByRef()'); $foo = 'bar'; $parameters = array('foo' => &$foo, 'bar' => 'bar'); $myparameters = array('myfoo' => 'bar', 'mybar' => 'bar'); $ph = new sfNamespacedParameterHolder(); $ph->addByRef($parameters); $ph->addByRef($myparameters, 'symfony/mynamespace'); $t->is($parameters, $ph->getAll(), '->add() adds an array of parameters'); $t->is($myparameters, $ph->getAll('symfony/mynamespace'), '->add() takes a namespace as its second argument'); $foo = 'mybar'; $t->is($parameters, $ph->getAll(), '->add() adds a reference of an array of parameters'); // ->serialize() ->unserialize() $t->diag('->serialize() ->unserialize()'); $t->ok($ph == unserialize(serialize($ph)), 'sfNamespacedParameterHolder implements the Serializable interface'); // Array path as a key $t->diag('Array path as a key'); $ph = new sfNamespacedParameterHolder(); $ph->add(array('foo' => array('bar' => 'foo'))); $t->is($ph->has('foo[bar]'), true, '->has() can takes a multi-array key'); $t->is($ph->get('foo[bar]'), 'foo', '->has() can takes a multi-array key'); $t->is($ph->remove('foo[bar]'), 'foo', '->remove() can takes a multi-array key'); $t->is($ph->getAll(), array('foo' => array()), '->remove() can takes a multi-array key');