Annotation of embedaddon/php/ext/reflection/tests/ReflectionMethod_invoke_error1.phpt, revision 1.1.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>