diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt')
-rw-r--r-- | ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt b/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt new file mode 100644 index 0000000..513cc18 --- /dev/null +++ b/ext/reflection/tests/ReflectionMethod_invokeArgs_error3.phpt @@ -0,0 +1,117 @@ +--TEST-- +ReflectionMethod::invokeArgs() further errors +--FILE-- +<?php + +class TestClass { + public $prop = 2; + + public function foo() { + echo "Called foo(), property = $this->prop\n"; + var_dump($this); + return "Return Val"; + } + + public static function staticMethod() { + echo "Called staticMethod()\n"; + var_dump($this); + } + + private static function privateMethod() { + echo "Called privateMethod()\n"; + } +} + +abstract class AbstractClass { + abstract function foo(); +} + +$testClassInstance = new TestClass(); +$testClassInstance->prop = "Hello"; + +$foo = new ReflectionMethod($testClassInstance, 'foo'); +$staticMethod = new ReflectionMethod('TestClass::staticMethod'); +$privateMethod = new ReflectionMethod("TestClass::privateMethod"); + +echo "Wrong number of parameters:\n"; +var_dump($foo->invokeArgs()); +var_dump($foo->invokeArgs(true)); + +echo "\nNon-instance:\n"; +try { + var_dump($foo->invokeArgs(new stdClass(), array())); +} catch (ReflectionException $e) { + var_dump($e->getMessage()); +} + +echo "\nNon-object:\n"; +var_dump($foo->invokeArgs(true, array())); + +echo "\nStatic method:\n"; + +var_dump($staticMethod->invokeArgs()); +var_dump($staticMethod->invokeArgs(true)); +var_dump($staticMethod->invokeArgs(true, array())); +var_dump($staticMethod->invokeArgs(null, array())); + +echo "\nPrivate method:\n"; +try { + var_dump($privateMethod->invokeArgs($testClassInstance, array())); +} catch (ReflectionException $e) { + var_dump($e->getMessage()); +} + +echo "\nAbstract method:\n"; +$abstractMethod = new ReflectionMethod("AbstractClass::foo"); +try { + $abstractMethod->invokeArgs($testClassInstance, array()); +} catch (ReflectionException $e) { + var_dump($e->getMessage()); +} +try { + $abstractMethod->invokeArgs(true); +} catch (ReflectionException $e) { + var_dump($e->getMessage()); +} + +?> +--EXPECTF-- +Wrong number of parameters: + +Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 0 given in %s on line %d +NULL + +Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Non-instance: +string(72) "Given object is not an instance of the class this method was declared in" + +Non-object: + +Warning: ReflectionMethod::invokeArgs() expects parameter 1 to be object, boolean given in %s on line %d +NULL + +Static method: + +Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 0 given in %s on line %d +NULL + +Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 1 given in %s on line %d +NULL + +Warning: ReflectionMethod::invokeArgs() expects parameter 1 to be object, boolean given in %s on line %d +NULL +Called staticMethod() + +Notice: Undefined variable: this in %s on line %d +NULL +NULL + +Private method: +string(86) "Trying to invoke private method TestClass::privateMethod() from scope ReflectionMethod" + +Abstract method: +string(53) "Trying to invoke abstract method AbstractClass::foo()" + +Warning: ReflectionMethod::invokeArgs() expects exactly 2 parameters, 1 given in %s on line %d |