function testMethodsListFromClass() { $reflection = new SimpleReflection('AnyOldThing'); $methods = $reflection->getMethods(); $this->assertEqualIgnoringCase($methods[0], 'aMethod'); }
function testMethodsComeFromDescendentInterfacesInAbstractClass() { $reflection = new SimpleReflection('AnyAbstractImplementation'); $this->assertIdentical($reflection->getMethods(), array('aMethod')); }
/** * Creates code within a class to generate replaced * methods. All methods call the _invoke() handler * with the method name and the arguments in an * array. * @param array $methods Additional methods. * @access private */ function _createHandlerCode($methods) { $code = ''; $methods = array_merge($methods, $this->_reflection->getMethods()); foreach ($methods as $method) { if ($this->_isConstructor($method)) { continue; } $mock_reflection = new SimpleReflection($this->_mock_base); if (in_array($method, $mock_reflection->getMethods())) { continue; } $code .= " " . $this->_reflection->getSignature($method) . " {\n"; $code .= " \$args = func_get_args();\n"; $code .= " \$result = &\$this->_invoke(\"{$method}\", \$args);\n"; $code .= " return \$result;\n"; $code .= " }\n"; } return $code; }
/** * Creates code within a class to generate a new * methods. All methods call the invoke() handler * on the internal mock with the method name and * the arguments in an array. * @param array $methods Additional methods. */ protected function createNewMethodCode($methods) { $code = ''; foreach ($methods as $method) { if ($this->isConstructor($method)) { continue; } $mock_reflection = new SimpleReflection($this->mock_base); if (in_array($method, $mock_reflection->getMethods())) { continue; } $code .= " " . $this->reflection->getSignature($method) . " {\n"; $code .= " \$args = func_get_args();\n"; $code .= " \$result = &\$this->mock->invoke(\"{$method}\", \$args);\n"; $code .= " return \$result;\n"; $code .= " }\n"; } return $code; }
/** * Calculates the incoming test cases. Skips abstract * and ignored classes. * @param array $candidates Candidate classes. * @return array New classes which are test * cases that shouldn't be ignored. * @access public */ function selectRunnableTests($candidates) { $classes = array(); foreach ($candidates as $class) { if (TestSuite::getBaseTestCase($class)) { $reflection = new SimpleReflection($class); if ($reflection->isAbstract()) { SimpleTest::ignore($class); } else { // only pick classes which do have test methods we can run: $methods = $reflection->getMethods(); foreach ($methods as $method) { if (SimpleTestCase::isTest($class, $method)) { $classes[] = $class; break; } } } } } return $classes; }
function testMethodsListFromInterface() { $reflection = new SimpleReflection('AnyOldInterface'); $methods = $reflection->getMethods(); $this->assertEqual($methods[0], 'aMethod'); }