1--TEST-- 2ReflectionMethod constructor errors 3--CREDITS-- 4Robin Fernandes <robinf@php.net> 5Steve Seear <stevseea@php.net> 6--FILE-- 7<?php 8 9class TestClass 10{ 11 public function foo() { 12 } 13} 14 15 16try { 17 echo "\nWrong type of argument (bool):\n"; 18 $methodInfo = new ReflectionMethod(true); 19} catch (Exception $e) { 20 print $e->__toString(); 21} 22try { 23 echo "\nWrong type of argument (int):\n"; 24 $methodInfo = new ReflectionMethod(3); 25} catch (Exception $e) { 26 print $e->__toString(); 27} 28try { 29 echo "\nWrong type of argument (bool, string):\n"; 30 $methodInfo = new ReflectionMethod(true, "foo"); 31} catch (Exception $e) { 32 print $e->__toString(); 33} 34try { 35 echo "\nWrong type of argument (string, bool):\n"; 36 $methodInfo = new ReflectionMethod('TestClass', true); 37} catch (Exception $e) { 38 print $e->__toString(); 39} 40try { 41 echo "\nNo method given:\n"; 42 $methodInfo = new ReflectionMethod("TestClass"); 43} catch (Exception $e) { 44 print $e->__toString(); 45} 46try { 47 echo "\nClass and Method in same string, bad method name:\n"; 48 $methodInfo = new ReflectionMethod("TestClass::foop::dedoop"); 49} catch (Exception $e) { 50 print $e->__toString(); 51} 52try { 53 echo "\nClass and Method in same string, bad class name:\n"; 54 $methodInfo = new ReflectionMethod("TestCla::foo"); 55} catch (Exception $e) { 56 print $e->__toString(); 57} 58try { 59 echo "\nClass and Method in same string (ok):\n"; 60 $methodInfo = new ReflectionMethod("TestClass::foo"); 61} catch (Exception $e) { 62 print $e->__toString(); 63} 64 65?> 66--EXPECTF-- 67Wrong type of argument (bool): 68exception 'ReflectionException' with message 'Invalid method name 1' in %s 69Stack trace: 70#0 %s ReflectionMethod->__construct('1') 71#1 {main} 72Wrong type of argument (int): 73exception 'ReflectionException' with message 'Invalid method name 3' in %s 74Stack trace: 75#0 %s ReflectionMethod->__construct('3') 76#1 {main} 77Wrong type of argument (bool, string): 78exception 'ReflectionException' with message 'The parameter class is expected to be either a string or an object' in %s 79Stack trace: 80#0 %s ReflectionMethod->__construct(true, 'foo') 81#1 {main} 82Wrong type of argument (string, bool): 83exception 'ReflectionException' with message 'Method TestClass::1() does not exist' in %s 84Stack trace: 85#0 %s ReflectionMethod->__construct('TestClass', '1') 86#1 {main} 87No method given: 88exception 'ReflectionException' with message 'Invalid method name TestClass' in %s 89Stack trace: 90#0 %s ReflectionMethod->__construct('TestClass') 91#1 {main} 92Class and Method in same string, bad method name: 93exception 'ReflectionException' with message 'Method TestClass::foop::dedoop() does not exist' in %s 94Stack trace: 95#0 %s ReflectionMethod->__construct('TestClass::foop...') 96#1 {main} 97Class and Method in same string, bad class name: 98exception 'ReflectionException' with message 'Class TestCla does not exist' in %s 99Stack trace: 100#0 %s ReflectionMethod->__construct('TestCla::foo') 101#1 {main} 102Class and Method in same string (ok): 103 104