annotate vendor/sebastian/object-reflector/tests/ObjectReflectorTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php
Chris@14 2 /*
Chris@14 3 * This file is part of object-reflector.
Chris@14 4 *
Chris@14 5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
Chris@14 6 *
Chris@14 7 * For the full copyright and license information, please view the LICENSE
Chris@14 8 * file that was distributed with this source code.
Chris@14 9 */
Chris@14 10
Chris@14 11 declare(strict_types=1);
Chris@14 12
Chris@14 13 namespace SebastianBergmann\ObjectReflector;
Chris@14 14
Chris@14 15 use PHPUnit\Framework\TestCase;
Chris@14 16 use SebastianBergmann\ObjectReflector\TestFixture\ChildClass;
Chris@14 17 use SebastianBergmann\ObjectReflector\TestFixture\ClassWithIntegerAttributeName;
Chris@14 18
Chris@14 19 /**
Chris@14 20 * @covers SebastianBergmann\ObjectReflector\ObjectReflector
Chris@14 21 */
Chris@14 22 class ObjectReflectorTest extends TestCase
Chris@14 23 {
Chris@14 24 /**
Chris@14 25 * @var ObjectReflector
Chris@14 26 */
Chris@14 27 private $objectReflector;
Chris@14 28
Chris@14 29 protected function setUp()/*: void */
Chris@14 30 {
Chris@14 31 $this->objectReflector = new ObjectReflector;
Chris@14 32 }
Chris@14 33
Chris@14 34 public function testReflectsAttributesOfObject()/*: void */
Chris@14 35 {
Chris@14 36 $o = new ChildClass;
Chris@14 37
Chris@14 38 $this->assertEquals(
Chris@14 39 [
Chris@14 40 'privateInChild' => 'private',
Chris@14 41 'protectedInChild' => 'protected',
Chris@14 42 'publicInChild' => 'public',
Chris@14 43 'undeclared' => 'undeclared',
Chris@14 44 'SebastianBergmann\ObjectReflector\TestFixture\ParentClass::privateInParent' => 'private',
Chris@14 45 'SebastianBergmann\ObjectReflector\TestFixture\ParentClass::protectedInParent' => 'protected',
Chris@14 46 'SebastianBergmann\ObjectReflector\TestFixture\ParentClass::publicInParent' => 'public',
Chris@14 47 ],
Chris@14 48 $this->objectReflector->getAttributes($o)
Chris@14 49 );
Chris@14 50 }
Chris@14 51
Chris@14 52 public function testReflectsAttributeWithIntegerName()/*: void */
Chris@14 53 {
Chris@14 54 $o = new ClassWithIntegerAttributeName;
Chris@14 55
Chris@14 56 $this->assertEquals(
Chris@14 57 [
Chris@14 58 1 => 2
Chris@14 59 ],
Chris@14 60 $this->objectReflector->getAttributes($o)
Chris@14 61 );
Chris@14 62 }
Chris@14 63
Chris@14 64 public function testRaisesExceptionWhenPassedArgumentIsNotAnObject()/*: void */
Chris@14 65 {
Chris@14 66 $this->expectException(InvalidArgumentException::class);
Chris@14 67
Chris@14 68 $this->objectReflector->getAttributes(null);
Chris@14 69 }
Chris@14 70 }