File "PropertyTest.php"
Full Path: /var/www/html/back/vendor/phpdocumentor/reflection/tests/unit/phpDocumentor/Reflection/Php/PropertyTest.php
File size: 4.4 KB
MIME-type: text/x-php
Charset: utf-8
<?php
declare(strict_types=1);
/**
* This file is part of phpDocumentor.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @link http://phpdoc.org
*/
namespace phpDocumentor\Reflection\Php;
use phpDocumentor\Reflection\DocBlock;
use phpDocumentor\Reflection\Fqsen;
use phpDocumentor\Reflection\Location;
use phpDocumentor\Reflection\Metadata\MetaDataContainer as MetaDataContainerInterface;
use phpDocumentor\Reflection\Types\Integer;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\UsesClass;
/**
* Tests the functionality for the Property class.
*
* @property Property $fixture
*/
#[CoversClass(Property::class)]
#[UsesClass('\phpDocumentor\Reflection\Php\Visibility')]
#[UsesClass('\phpDocumentor\Reflection\Types\Integer')]
final class PropertyTest extends TestCase
{
use MetadataContainerTestHelper;
private Fqsen $fqsen;
private Visibility $visibility;
private DocBlock $docBlock;
protected function setUp(): void
{
$this->fqsen = new Fqsen('\My\Class::$property');
$this->visibility = new Visibility('private');
$this->docBlock = new DocBlock('');
$this->fixture = new Property($this->fqsen);
}
private function getFixture(): MetaDataContainerInterface
{
return $this->fixture;
}
public function testGetFqsenAndGetName(): void
{
$property = new Property($this->fqsen);
self::assertSame($this->fqsen, $property->getFqsen());
self::assertEquals($this->fqsen->getName(), $property->getName());
}
public function testGettingWhetherPropertyIsStatic(): void
{
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, null, false);
self::assertFalse($property->isStatic());
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, null, true);
self::assertTrue($property->isStatic());
}
public function testGettingWhetherPropertyIsReadOnly(): void
{
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, null);
self::assertFalse($property->isReadOnly());
$property = new Property(
$this->fqsen,
$this->visibility,
$this->docBlock,
null,
true,
null,
null,
null,
true,
);
self::assertTrue($property->isReadOnly());
}
public function testGettingVisibility(): void
{
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, null, true);
self::assertSame($this->visibility, $property->getVisibility());
}
public function testSetAndGetTypes(): void
{
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, null, true);
self::assertEquals([], $property->getTypes());
$property->addType('a');
self::assertEquals(['a'], $property->getTypes());
}
public function testGetDefault(): void
{
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, null, false);
self::assertNull($property->getDefault());
$expression = new Expression('a');
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, $expression, true);
self::assertSame('a', $property->getDefault());
self::assertSame($expression, $property->getDefault(false));
}
public function testGetDocBlock(): void
{
$property = new Property($this->fqsen, $this->visibility, $this->docBlock, null, false);
self::assertSame($this->docBlock, $property->getDocBlock());
}
public function testLineAndColumnNumberIsReturnedWhenALocationIsProvided(): void
{
$fixture = new Property($this->fqsen, null, null, null, false, new Location(100, 20), new Location(101, 20));
$this->assertLineAndColumnNumberIsReturnedWhenALocationIsProvided($fixture);
}
public function testGetType(): void
{
$type = new Integer();
$fixture = new Property(
$this->fqsen,
null,
null,
null,
false,
null,
null,
$type,
);
self::assertSame($type, $fixture->getType());
$fixture = new Property($this->fqsen);
self::assertNull($fixture->getType());
}
}