Viewing file: ArrayNodeTest.php (4.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace Symfony\Component\Config\Tests\Definition;
use Symfony\Component\Config\Definition\ArrayNode; use Symfony\Component\Config\Definition\ScalarNode;
class ArrayNodeTest extends \PHPUnit_Framework_TestCase { /** * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidTypeException */ public function testNormalizeThrowsExceptionWhenFalseIsNotAllowed() { $node = new ArrayNode('root'); $node->normalize(false); }
/** * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidConfigurationException * @expectedExceptionMessage Unrecognized options "foo" under "root" */ public function testExceptionThrownOnUnrecognizedChild() { $node = new ArrayNode('root'); $node->normalize(array('foo' => 'bar')); }
/** * Tests that no exception is thrown for an unrecognized child if the * ignoreExtraKeys option is set to true. * * Related to testExceptionThrownOnUnrecognizedChild */ public function testIgnoreExtraKeysNoException() { $node = new ArrayNode('roo'); $node->setIgnoreExtraKeys(true);
$node->normalize(array('foo' => 'bar')); $this->assertTrue(true, 'No exception was thrown when setIgnoreExtraKeys is true'); }
/** * @dataProvider getPreNormalizationTests */ public function testPreNormalize($denormalized, $normalized) { $node = new ArrayNode('foo');
$r = new \ReflectionMethod($node, 'preNormalize'); $r->setAccessible(true);
$this->assertSame($normalized, $r->invoke($node, $denormalized)); }
public function getPreNormalizationTests() { return array( array( array('foo-bar' => 'foo'), array('foo_bar' => 'foo'), ), array( array('foo-bar_moo' => 'foo'), array('foo-bar_moo' => 'foo'), ), array( array('foo-bar' => null, 'foo_bar' => 'foo'), array('foo-bar' => null, 'foo_bar' => 'foo'), ) ); }
/** * @dataProvider getZeroNamedNodeExamplesData */ public function testNodeNameCanBeZero($denormalized, $normalized) { $zeroNode = new ArrayNode(0); $zeroNode->addChild(new ScalarNode('name')); $fiveNode = new ArrayNode(5); $fiveNode->addChild(new ScalarNode(0)); $fiveNode->addChild(new ScalarNode('new_key')); $rootNode = new ArrayNode('root'); $rootNode->addChild($zeroNode); $rootNode->addChild($fiveNode); $rootNode->addChild(new ScalarNode('string_key')); $r = new \ReflectionMethod($rootNode, 'normalizeValue'); $r->setAccessible(true);
$this->assertSame($normalized, $r->invoke($rootNode, $denormalized)); }
public function getZeroNamedNodeExamplesData() { return array( array( array( 0 => array( 'name' => 'something', ), 5 => array( 0 => 'this won\'t work too', 'new_key' => 'some other value', ), 'string_key' => 'just value', ), array( 0 => array ( 'name' => 'something', ), 5 => array ( 0 => 'this won\'t work too', 'new_key' => 'some other value', ), 'string_key' => 'just value', ), ), ); }
/** * @dataProvider getPreNormalizedNormalizedOrderedData */ public function testChildrenOrderIsMaintainedOnNormalizeValue($prenormalized, $normalized) { $scalar1 = new ScalarNode('1'); $scalar2 = new ScalarNode('2'); $scalar3 = new ScalarNode('3'); $node = new ArrayNode('foo'); $node->addChild($scalar1); $node->addChild($scalar3); $node->addChild($scalar2);
$r = new \ReflectionMethod($node, 'normalizeValue'); $r->setAccessible(true);
$this->assertSame($normalized, $r->invoke($node, $prenormalized)); }
public function getPreNormalizedNormalizedOrderedData() { return array( array( array('2' => 'two', '1' => 'one', '3' => 'three'), array('2' => 'two', '1' => 'one', '3' => 'three'), ), ); } }
|