|
32 | 32 | use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; |
33 | 33 | use Symfony\Component\Config\Resource\FileResource; |
34 | 34 | use Symfony\Component\DependencyInjection\Tests\Fixtures\CustomDefinition; |
| 35 | +use Symfony\Component\DependencyInjection\Tests\Fixtures\CaseSensitiveClass; |
35 | 36 | use Symfony\Component\ExpressionLanguage\Expression; |
36 | 37 |
|
37 | 38 | class ContainerBuilderTest extends \PHPUnit_Framework_TestCase |
@@ -926,6 +927,44 @@ public function testClosureProxyOnInvalidException() |
926 | 927 |
|
927 | 928 | $container->get('foo'); |
928 | 929 | } |
| 930 | + |
| 931 | + public function testClassFromId() |
| 932 | + { |
| 933 | + $container = new ContainerBuilder(); |
| 934 | + |
| 935 | + $unknown = $container->register('unknown_class'); |
| 936 | + $class = $container->register(\stdClass::class); |
| 937 | + $autoloadClass = $container->register(CaseSensitiveClass::class); |
| 938 | + $container->compile(); |
| 939 | + |
| 940 | + $this->assertSame('unknown_class', $unknown->getClass()); |
| 941 | + $this->assertEquals(\stdClass::class, $class->getClass()); |
| 942 | + $this->assertEquals(CaseSensitiveClass::class, $autoloadClass->getClass()); |
| 943 | + } |
| 944 | + |
| 945 | + /** |
| 946 | + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException |
| 947 | + * @expectedExceptionMessage The definition for "123_abc" has no class. |
| 948 | + */ |
| 949 | + public function testNoClassFromNonClassId() |
| 950 | + { |
| 951 | + $container = new ContainerBuilder(); |
| 952 | + |
| 953 | + $definition = $container->register('123_abc'); |
| 954 | + $container->compile(); |
| 955 | + } |
| 956 | + |
| 957 | + /** |
| 958 | + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException |
| 959 | + * @expectedExceptionMessage The definition for "\foo" has no class. |
| 960 | + */ |
| 961 | + public function testNoClassFromNsSeparatorId() |
| 962 | + { |
| 963 | + $container = new ContainerBuilder(); |
| 964 | + |
| 965 | + $definition = $container->register('\\foo'); |
| 966 | + $container->compile(); |
| 967 | + } |
929 | 968 | } |
930 | 969 |
|
931 | 970 | class FooClass |
|
0 commit comments