1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
<?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\DependencyInjection\Tests;
use PHPUnit\Framework\TestCase;
use Symfony\Component\DependencyInjection\Alias;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
class AliasTest extends TestCase
{
public function testConstructor()
{
$alias = new Alias('foo');
$this->assertEquals('foo', (string) $alias);
$this->assertFalse($alias->isPublic());
}
public function testCanConstructANonPublicAlias()
{
$alias = new Alias('foo', false);
$this->assertEquals('foo', (string) $alias);
$this->assertFalse($alias->isPublic());
}
public function testCanConstructAPrivateAlias()
{
$alias = new Alias('foo', false, false);
$this->assertEquals('foo', (string) $alias);
$this->assertFalse($alias->isPublic());
$this->assertTrue($alias->isPrivate());
}
public function testCanSetPublic()
{
$alias = new Alias('foo', false);
$alias->setPublic(true);
$this->assertTrue($alias->isPublic());
}
public function testCanDeprecateAnAlias()
{
$alias = new Alias('foo', false);
$alias->setDeprecated('vendor/package', '1.1', 'The %alias_id% service is deprecated.');
$this->assertTrue($alias->isDeprecated());
}
public function testReturnsCorrectDeprecation()
{
$alias = new Alias('foo', false);
$alias->setDeprecated('vendor/package', '1.1', 'The "%alias_id%" is deprecated.');
$deprecation = $alias->getDeprecation('foo');
$this->assertEquals('The "foo" is deprecated.', $deprecation['message']);
$this->assertEquals('vendor/package', $deprecation['package']);
$this->assertEquals('1.1', $deprecation['version']);
}
#[\PHPUnit\Framework\Attributes\DataProvider('invalidDeprecationMessageProvider')]
public function testCannotDeprecateWithAnInvalidTemplate($message)
{
$def = new Alias('foo');
$this->expectException(InvalidArgumentException::class);
$def->setDeprecated('package', '1.1', $message);
}
public static function invalidDeprecationMessageProvider(): array
{
return [
"With \rs" => ["invalid \r message %alias_id%"],
"With \ns" => ["invalid \n message %alias_id%"],
'With */s' => ['invalid */ message %alias_id%'],
'message not containing required %alias_id% variable' => ['this is deprecated'],
'template not containing required %alias_id% variable' => [true],
];
}
}
|