mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Adding method extraction and test case.
This commit is contained in:
parent
dee9b6370b
commit
f20a7e4f61
2 changed files with 51 additions and 6 deletions
|
@ -200,6 +200,26 @@ class TestTask extends Shell {
|
||||||
return $extras;
|
return $extras;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get methods declared in the class given.
|
||||||
|
* No parent methods will be returned
|
||||||
|
*
|
||||||
|
* @param string $className Name of class to look at.
|
||||||
|
* @return array Array of method names.
|
||||||
|
**/
|
||||||
|
function getTestableMethods($className) {
|
||||||
|
$classMethods = get_class_methods($className);
|
||||||
|
$parentMethods = get_class_methods(get_parent_class($className));
|
||||||
|
$thisMethods = array_diff($classMethods, $parentMethods);
|
||||||
|
$out = array();
|
||||||
|
foreach ($thisMethods as $method) {
|
||||||
|
if (substr($method, 0, 1) != '_') {
|
||||||
|
$out[] = $method;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $out;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a test for a Model object.
|
* Create a test for a Model object.
|
||||||
*
|
*
|
||||||
|
|
|
@ -42,13 +42,25 @@ if (!class_exists('TestTask')) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Mock::generatePartial(
|
Mock::generatePartial(
|
||||||
'ShellDispatcher', 'TestTestTaskMockShellDispatcher',
|
'ShellDispatcher', 'TestTestTaskMockShellDispatcher',
|
||||||
array('getInput', 'stdout', 'stderr', '_stop', '_initEnvironment')
|
array('getInput', 'stdout', 'stderr', '_stop', '_initEnvironment')
|
||||||
);
|
);
|
||||||
Mock::generatePartial(
|
Mock::generatePartial(
|
||||||
'TestTask', 'MockTestTask',
|
'TestTask', 'MockTestTask',
|
||||||
array('in', 'out', 'createFile')
|
array('in', 'out', 'createFile')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
class TestTaskSubjectClass extends Object {
|
||||||
|
function methodOne() {
|
||||||
|
|
||||||
|
}
|
||||||
|
function methodTwo() {
|
||||||
|
|
||||||
|
}
|
||||||
|
function _noTest() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* TestTaskTest class
|
* TestTaskTest class
|
||||||
*
|
*
|
||||||
|
@ -96,5 +108,18 @@ class TestTaskTest extends CakeTestCase {
|
||||||
$this->Task->expectAt(1, 'createFile', array($file, '*'));
|
$this->Task->expectAt(1, 'createFile', array($file, '*'));
|
||||||
$this->Task->bake('Model', 'MyClass');
|
$this->Task->bake('Model', 'MyClass');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that method introspection pulls all relevant non parent class
|
||||||
|
* methods into the test case.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
**/
|
||||||
|
function testMethodIntrospection() {
|
||||||
|
$result = $this->Task->getTestableMethods('TestTaskSubjectClass');
|
||||||
|
$expected = array('methodOne', 'methodTwo');
|
||||||
|
$this->assertEqual($result, $expected);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
Loading…
Reference in a new issue