bug #15750 Add tests to the recently added exceptions thrown from YamlFileLoaders (jakzal)

This PR was merged into the 2.3 branch.

Discussion
----------

Add tests to the recently added exceptions thrown from YamlFileLoaders

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15702 #15731
| License       | MIT
| Doc PR        | -

* use the `Symfony\Component\DependencyInjection\Exception\InvalidArgumentException` in the DI component
* add tests

Commits
-------

93e418f Improve exception messages.
This commit is contained in:
Fabien Potencier 2015-09-11 17:27:18 +02:00
commit 238531fea1
7 changed files with 39 additions and 5 deletions

View File

@ -290,7 +290,7 @@ class YamlFileLoader extends FileLoader
try {
$configuration = $this->yamlParser->parse(file_get_contents($file));
} catch (ParseException $e) {
throw new \InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML.', $file), 0, $e);
throw new InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML.', $file), 0, $e);
}
return $this->validate($configuration, $file);

View File

@ -0,0 +1,2 @@
parameters:
FOO: bar

View File

@ -87,6 +87,7 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
array('bad_services'),
array('bad_service'),
array('bad_calls'),
array('bad_format'),
);
}

View File

@ -0,0 +1,3 @@
blog_show:
path: /blog/{slug}
defaults: { _controller: "MyBundle:Blog:show" }

View File

@ -51,7 +51,15 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
public function getPathsToInvalidFiles()
{
return array(array('nonvalid.yml'), array('nonvalid2.yml'), array('incomplete.yml'), array('nonvalidkeys.yml'), array('nonesense_resource_plus_path.yml'), array('nonesense_type_without_resource.yml'));
return array(
array('nonvalid.yml'),
array('nonvalid2.yml'),
array('incomplete.yml'),
array('nonvalidkeys.yml'),
array('nonesense_resource_plus_path.yml'),
array('nonesense_type_without_resource.yml'),
array('bad_format.yml'),
);
}
public function testLoadSpecialRouteName()

View File

@ -31,15 +31,26 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
$this->assertFalse($loader->loadClassMetadata($metadata));
}
public function testLoadClassMetadataThrowsExceptionIfNotAnArray()
/**
* @dataProvider provideInvalidYamlFiles
* @expectedException \InvalidArgumentException
*/
public function testInvalidYamlFiles($path)
{
$loader = new YamlFileLoader(__DIR__.'/nonvalid-mapping.yml');
$loader = new YamlFileLoader(__DIR__.'/'.$path);
$metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
$this->setExpectedException('\InvalidArgumentException');
$loader->loadClassMetadata($metadata);
}
public function provideInvalidYamlFiles()
{
return array(
array('nonvalid-mapping.yml'),
array('bad-format.yml'),
);
}
/**
* @see https://github.com/symfony/symfony/pull/12158
*/

View File

@ -0,0 +1,9 @@
namespaces:
custom: Symfony\Component\Validator\Tests\Fixtures\
Symfony\Component\Validator\Tests\Fixtures\Entity:
constraints:
# Custom constraint
- Symfony\Component\Validator\Tests\Fixtures\ConstraintA: ~
# Custom constraint with namespaces prefix
- "custom:ConstraintB": ~