$t->is(null, $ph->get('myfoo'), '->get() can have the same key for several namespaces');
// ->getNames()
$t->diag('->getNames()');
$ph = new sfNamespacedParameterHolder();
$ph->set('foo', 'bar');
$ph->set('yourfoo', 'bar');
$ph->set('myfoo', 'bar', 'symfony/mynamespace');
$t->is($ph->getNames(), array('foo', 'yourfoo'), '->getNames() returns all key names for the default namespace');
$t->is($ph->getNames('symfony/mynamespace'), array('myfoo'), '->getNames() takes a namepace as its first argument');
// ->getNamespaces()
$t->diag('->getNamespaces()');
$ph = new sfNamespacedParameterHolder();
$ph->set('foo', 'bar');
$ph->set('yourfoo', 'bar');
$ph->set('myfoo', 'bar', 'symfony/mynamespace');
$t->is($ph->getNamespaces(), array($ph->getDefaultNamespace(), 'symfony/mynamespace'), '->getNamespaces() returns all non empty namespaces');
// ->setDefaultNamespace()
$t->diag('->setDefaultNamespace()');
$ph = new sfNamespacedParameterHolder('symfony/mynamespace');
$ph->setDefaultNamespace('othernamespace');
$t->is($ph->getDefaultNamespace(), 'othernamespace', '->setDefaultNamespace() sets the default namespace');
$ph->set('foo', 'bar');
$ph->setDefaultNamespace('foonamespace');
$t->is($ph->get('foo'), 'bar', '->setDefaultNamespace() moves values from the old namespace to the new');
$t->is($ph->get('foo', null, 'othernamespace'), null, '->setDefaultNamespace() moves values from the old namespace to the new');
$ph->set('foo', 'bar');
$ph->setDefaultNamespace('barnamespace', false);
$t->is($ph->get('foo'), null, '->setDefaultNamespace() does not move old values to the new namespace if the second argument is false');
$t->is($ph->get('foo', null, 'foonamespace'), 'bar', '->setDefaultNamespace() does not move old values to the new namespace if the second argument is false');
// ->getAll()
$t->diag('->getAll()');