X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fsymfony%2Fdependency-injection%2FTests%2FCompiler%2FCheckArgumentsValidityPassTest.php;fp=vendor%2Fsymfony%2Fdependency-injection%2FTests%2FCompiler%2FCheckArgumentsValidityPassTest.php;h=d121689ff9c6a69b52b5903dcd1048bc0e758d2f;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/vendor/symfony/dependency-injection/Tests/Compiler/CheckArgumentsValidityPassTest.php b/vendor/symfony/dependency-injection/Tests/Compiler/CheckArgumentsValidityPassTest.php new file mode 100644 index 000000000..d121689ff --- /dev/null +++ b/vendor/symfony/dependency-injection/Tests/Compiler/CheckArgumentsValidityPassTest.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Tests\Compiler; + +use PHPUnit\Framework\TestCase; +use Symfony\Component\DependencyInjection\Compiler\CheckArgumentsValidityPass; +use Symfony\Component\DependencyInjection\ContainerBuilder; + +/** + * @author Kévin Dunglas + */ +class CheckArgumentsValidityPassTest extends TestCase +{ + public function testProcess() + { + $container = new ContainerBuilder(); + $definition = $container->register('foo'); + $definition->setArguments(array(null, 1, 'a')); + $definition->setMethodCalls(array( + array('bar', array('a', 'b')), + array('baz', array('c', 'd')), + )); + + $pass = new CheckArgumentsValidityPass(); + $pass->process($container); + + $this->assertEquals(array(null, 1, 'a'), $container->getDefinition('foo')->getArguments()); + $this->assertEquals(array( + array('bar', array('a', 'b')), + array('baz', array('c', 'd')), + ), $container->getDefinition('foo')->getMethodCalls()); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @dataProvider definitionProvider + */ + public function testException(array $arguments, array $methodCalls) + { + $container = new ContainerBuilder(); + $definition = $container->register('foo'); + $definition->setArguments($arguments); + $definition->setMethodCalls($methodCalls); + + $pass = new CheckArgumentsValidityPass(); + $pass->process($container); + } + + public function definitionProvider() + { + return array( + array(array(null, 'a' => 'a'), array()), + array(array(1 => 1), array()), + array(array(), array(array('baz', array(null, 'a' => 'a')))), + array(array(), array(array('baz', array(1 => 1)))), + ); + } + + public function testNoException() + { + $container = new ContainerBuilder(); + $definition = $container->register('foo'); + $definition->setArguments(array(null, 'a' => 'a')); + + $pass = new CheckArgumentsValidityPass(false); + $pass->process($container); + $this->assertCount(1, $definition->getErrors()); + } +}