Annotation of embedaddon/php/ext/reflection/tests/ReflectionProperty_getValue_error.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test ReflectionProperty::getValue() errors.
! 3: --FILE--
! 4: <?php
! 5:
! 6: class TestClass {
! 7: public $pub;
! 8: public $pub2 = 5;
! 9: static public $stat = "static property";
! 10: protected $prot = 4;
! 11: private $priv = "keepOut";
! 12: }
! 13:
! 14: class AnotherClass {
! 15: }
! 16:
! 17: $instance = new TestClass();
! 18: $instanceWithNoProperties = new AnotherClass();
! 19: $propInfo = new ReflectionProperty('TestClass', 'pub2');
! 20:
! 21: echo "Too few args:\n";
! 22: var_dump($propInfo->getValue());
! 23:
! 24: echo "\nToo many args:\n";
! 25: var_dump($propInfo->getValue($instance, true));
! 26:
! 27: echo "\nWrong type of arg:\n";
! 28: var_dump($propInfo->getValue(true));
! 29:
! 30: echo "\nInstance without property:\n";
! 31: $propInfo = new ReflectionProperty('TestClass', 'stat');
! 32:
! 33: echo "\nStatic property / too many args:\n";
! 34: var_dump($propInfo->getValue($instance, true));
! 35:
! 36: echo "\nStatic property / wrong type of arg:\n";
! 37: var_dump($propInfo->getValue(true));
! 38:
! 39: echo "\nProtected property:\n";
! 40: try {
! 41: $propInfo = new ReflectionProperty('TestClass', 'prot');
! 42: var_dump($propInfo->getValue($instance));
! 43: }
! 44: catch(Exception $exc) {
! 45: echo $exc->getMessage();
! 46: }
! 47:
! 48: echo "\n\nInstance without property:\n";
! 49: $propInfo = new ReflectionProperty('TestClass', 'pub2');
! 50: var_dump($propInfo->getValue($instanceWithNoProperties));
! 51:
! 52: ?>
! 53: --EXPECTF--
! 54: Too few args:
! 55:
! 56: Warning: ReflectionProperty::getValue() expects exactly 1 parameter, 0 given in %s on line %d
! 57: NULL
! 58:
! 59: Too many args:
! 60:
! 61: Warning: ReflectionProperty::getValue() expects exactly 1 parameter, 2 given in %s on line %d
! 62: NULL
! 63:
! 64: Wrong type of arg:
! 65:
! 66: Warning: ReflectionProperty::getValue() expects parameter 1 to be object, boolean given in %s on line %d
! 67: NULL
! 68:
! 69: Instance without property:
! 70:
! 71: Static property / too many args:
! 72: string(15) "static property"
! 73:
! 74: Static property / wrong type of arg:
! 75: string(15) "static property"
! 76:
! 77: Protected property:
! 78: Cannot access non-public member TestClass::prot
! 79:
! 80: Instance without property:
! 81: NULL
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>