annotate vendor/psy/psysh/test/SudoTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@13 1 <?php
Chris@13 2
Chris@13 3 /*
Chris@13 4 * This file is part of Psy Shell.
Chris@13 5 *
Chris@13 6 * (c) 2012-2018 Justin Hileman
Chris@13 7 *
Chris@13 8 * For the full copyright and license information, please view the LICENSE
Chris@13 9 * file that was distributed with this source code.
Chris@13 10 */
Chris@13 11
Chris@13 12 namespace Psy\Test;
Chris@13 13
Chris@13 14 use Psy\Sudo;
Chris@13 15
Chris@13 16 class SudoTest extends \PHPUnit\Framework\TestCase
Chris@13 17 {
Chris@13 18 public function setUp()
Chris@13 19 {
Chris@17 20 if (\version_compare(PHP_VERSION, '7.1.0', '<')) {
Chris@13 21 $this->markTestSkipped('YOLO');
Chris@13 22 }
Chris@13 23 }
Chris@13 24
Chris@13 25 public function testFetchProperty()
Chris@13 26 {
Chris@13 27 $obj = new ClassWithSecrets();
Chris@13 28 $this->assertSame('private and prop', Sudo::fetchProperty($obj, 'privateProp'));
Chris@13 29 }
Chris@13 30
Chris@13 31 public function testAssignProperty()
Chris@13 32 {
Chris@13 33 $obj = new ClassWithSecrets();
Chris@13 34 $this->assertSame('private and prop', Sudo::fetchProperty($obj, 'privateProp'));
Chris@13 35 $this->assertSame('not so private now', Sudo::assignProperty($obj, 'privateProp', 'not so private now'));
Chris@13 36 $this->assertSame('not so private now', Sudo::fetchProperty($obj, 'privateProp'));
Chris@13 37 }
Chris@13 38
Chris@13 39 public function testCallMethod()
Chris@13 40 {
Chris@13 41 $obj = new ClassWithSecrets();
Chris@13 42 $this->assertSame('private and method', Sudo::callMethod($obj, 'privateMethod'));
Chris@13 43 $this->assertSame('private and method with 1', Sudo::callMethod($obj, 'privateMethod', 1));
Chris@13 44 $this->assertSame(
Chris@13 45 'private and method with ["foo",2]',
Chris@13 46 Sudo::callMethod($obj, 'privateMethod', ['foo', 2]
Chris@13 47 ));
Chris@13 48 }
Chris@13 49
Chris@13 50 public function testFetchStaticProperty()
Chris@13 51 {
Chris@13 52 $obj = new ClassWithSecrets();
Chris@13 53 $this->assertSame('private and static and prop', Sudo::fetchStaticProperty($obj, 'privateStaticProp'));
Chris@13 54 }
Chris@13 55
Chris@13 56 public function testAssignStaticProperty()
Chris@13 57 {
Chris@13 58 $obj = new ClassWithSecrets();
Chris@13 59 $this->assertSame('private and static and prop', Sudo::fetchStaticProperty($obj, 'privateStaticProp'));
Chris@13 60 $this->assertSame('not so private now', Sudo::assignStaticProperty($obj, 'privateStaticProp', 'not so private now'));
Chris@13 61 $this->assertSame('not so private now', Sudo::fetchStaticProperty($obj, 'privateStaticProp'));
Chris@13 62 }
Chris@13 63
Chris@13 64 public function testCallStatic()
Chris@13 65 {
Chris@13 66 $obj = new ClassWithSecrets();
Chris@13 67 $this->assertSame('private and static and method', Sudo::callStatic($obj, 'privateStaticMethod'));
Chris@13 68 $this->assertSame('private and static and method with 1', Sudo::callStatic($obj, 'privateStaticMethod', 1));
Chris@13 69 $this->assertSame(
Chris@13 70 'private and static and method with ["foo",2]',
Chris@13 71 Sudo::callStatic($obj, 'privateStaticMethod', ['foo', 2]
Chris@13 72 ));
Chris@13 73 }
Chris@13 74
Chris@13 75 public function testFetchClassConst()
Chris@13 76 {
Chris@13 77 $obj = new ClassWithSecrets();
Chris@13 78 $this->assertSame('private and const', Sudo::fetchClassConst($obj, 'PRIVATE_CONST'));
Chris@13 79 }
Chris@13 80 }