| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php declare(strict_types=1);
- namespace PhpParser\Node\Stmt;
- use PhpParser\Node\Scalar\String_;
- class ClassTest extends \PHPUnit\Framework\TestCase
- {
- public function testIsAbstract() {
- $class = new Class_('Foo', ['type' => Class_::MODIFIER_ABSTRACT]);
- $this->assertTrue($class->isAbstract());
- $class = new Class_('Foo');
- $this->assertFalse($class->isAbstract());
- }
- public function testIsFinal() {
- $class = new Class_('Foo', ['type' => Class_::MODIFIER_FINAL]);
- $this->assertTrue($class->isFinal());
- $class = new Class_('Foo');
- $this->assertFalse($class->isFinal());
- }
- public function testGetTraitUses() {
- $traitUses = [
- new TraitUse([new Trait_('foo')]),
- new TraitUse([new Trait_('bar')]),
- ];
- $class = new Class_('Foo', [
- 'stmts' => [
- $traitUses[0],
- new ClassMethod('fooBar'),
- $traitUses[1],
- ]
- ]);
- $this->assertSame($traitUses, $class->getTraitUses());
- }
- public function testGetMethods() {
- $methods = [
- new ClassMethod('foo'),
- new ClassMethod('bar'),
- new ClassMethod('fooBar'),
- ];
- $class = new Class_('Foo', [
- 'stmts' => [
- new TraitUse([]),
- $methods[0],
- new ClassConst([]),
- $methods[1],
- new Property(0, []),
- $methods[2],
- ]
- ]);
- $this->assertSame($methods, $class->getMethods());
- }
- public function testGetConstants() {
- $constants = [
- new ClassConst([new \PhpParser\Node\Const_('foo', new String_('foo_value'))]),
- new ClassConst([new \PhpParser\Node\Const_('bar', new String_('bar_value'))]),
- ];
- $class = new Class_('Foo', [
- 'stmts' => [
- new TraitUse([]),
- $constants[0],
- new ClassMethod('fooBar'),
- $constants[1],
- ]
- ]);
- $this->assertSame($constants, $class->getConstants());
- }
- public function testGetProperties()
- {
- $properties = [
- new Property(Class_::MODIFIER_PUBLIC, [new PropertyProperty('foo')]),
- new Property(Class_::MODIFIER_PUBLIC, [new PropertyProperty('bar')]),
- ];
- $class = new Class_('Foo', [
- 'stmts' => [
- new TraitUse([]),
- $properties[0],
- new ClassConst([]),
- $properties[1],
- new ClassMethod('fooBar'),
- ]
- ]);
- $this->assertSame($properties, $class->getProperties());
- }
- public function testGetProperty() {
- $properties = [
- $fooProp = new Property(Class_::MODIFIER_PUBLIC, [new PropertyProperty('foo1')]),
- $barProp = new Property(Class_::MODIFIER_PUBLIC, [new PropertyProperty('BAR1')]),
- $fooBarProp = new Property(Class_::MODIFIER_PUBLIC, [new PropertyProperty('foo2'), new PropertyProperty('bar2')]),
- ];
- $class = new Class_('Foo', [
- 'stmts' => [
- new TraitUse([]),
- $properties[0],
- new ClassConst([]),
- $properties[1],
- new ClassMethod('fooBar'),
- $properties[2],
- ]
- ]);
- $this->assertSame($fooProp, $class->getProperty('foo1'));
- $this->assertSame($barProp, $class->getProperty('BAR1'));
- $this->assertSame($fooBarProp, $class->getProperty('foo2'));
- $this->assertSame($fooBarProp, $class->getProperty('bar2'));
- $this->assertNull($class->getProperty('bar1'));
- $this->assertNull($class->getProperty('nonExisting'));
- }
- public function testGetMethod() {
- $methodConstruct = new ClassMethod('__CONSTRUCT');
- $methodTest = new ClassMethod('test');
- $class = new Class_('Foo', [
- 'stmts' => [
- new ClassConst([]),
- $methodConstruct,
- new Property(0, []),
- $methodTest,
- ]
- ]);
- $this->assertSame($methodConstruct, $class->getMethod('__construct'));
- $this->assertSame($methodTest, $class->getMethod('test'));
- $this->assertNull($class->getMethod('nonExisting'));
- }
- }
|