Annotation of embedaddon/php/ext/reflection/tests/ReflectionMethod_invoke_error1.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: ReflectionMethod::invoke() errors
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: class TestClass {
        !             7:     public $prop = 2;
        !             8: 
        !             9:     public function foo() {
        !            10:         echo "Called foo(), property = $this->prop\n";
        !            11:         var_dump($this);
        !            12:         return "Return Val";
        !            13:     }
        !            14: 
        !            15:     private static function privateMethod() {
        !            16:         echo "Called privateMethod()\n";
        !            17:     }
        !            18: }
        !            19: 
        !            20: abstract class AbstractClass {
        !            21:     abstract function foo();
        !            22: }
        !            23: 
        !            24: $foo = new ReflectionMethod('TestClass', 'foo');
        !            25: $privateMethod = new ReflectionMethod("TestClass::privateMethod");
        !            26: 
        !            27: $testClassInstance = new TestClass();
        !            28: $testClassInstance->prop = "Hello";
        !            29: 
        !            30: echo "invoke() on a non-object:\n";
        !            31: try {
        !            32:     var_dump($foo->invoke(true));
        !            33: } catch (ReflectionException $e) {
        !            34:     var_dump($e->getMessage());
        !            35: }
        !            36: 
        !            37: echo "\ninvoke() on a non-instance:\n";
        !            38: try {
        !            39:     var_dump($foo->invoke(new stdClass()));
        !            40: } catch (ReflectionException $e) {
        !            41:     var_dump($e->getMessage());
        !            42: }
        !            43: 
        !            44: echo "\nPrivate method:\n";
        !            45: try {
        !            46:     var_dump($privateMethod->invoke($testClassInstance));
        !            47: } catch (ReflectionException $e) {
        !            48:     var_dump($e->getMessage());
        !            49: }
        !            50: 
        !            51: echo "\nAbstract method:\n";
        !            52: $abstractMethod = new ReflectionMethod("AbstractClass::foo");
        !            53: try {
        !            54:     $abstractMethod->invoke(true);
        !            55: } catch (ReflectionException $e) {
        !            56:     var_dump($e->getMessage());
        !            57: }
        !            58: 
        !            59: ?>
        !            60: --EXPECTF--
        !            61: invoke() on a non-object:
        !            62: string(29) "Non-object passed to Invoke()"
        !            63: 
        !            64: invoke() on a non-instance:
        !            65: string(72) "Given object is not an instance of the class this method was declared in"
        !            66: 
        !            67: Private method:
        !            68: string(86) "Trying to invoke private method TestClass::privateMethod() from scope ReflectionMethod"
        !            69: 
        !            70: Abstract method:
        !            71: string(53) "Trying to invoke abstract method AbstractClass::foo()"

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>