Merge pull request #13780 from owncloud/cmreflector-inheritance

Additional controllermethodreflector inheritance tests
This commit is contained in:
Lukas Reschke 2015-02-12 18:34:07 +01:00
commit bd5440a8a3
1 changed files with 58 additions and 2 deletions

View File

@ -25,6 +25,38 @@
namespace OC\AppFramework\Utility;
class BaseController {
/**
* @Annotation
*/
public function test(){}
/**
* @Annotation
*/
public function test2(){}
/**
* @Annotation
*/
public function test3(){}
}
class MiddleController extends BaseController {
/**
* @NoAnnotation
*/
public function test2() {}
public function test3() {}
}
class EndController extends MiddleController {}
class ControllerMethodReflectorTest extends \Test\TestCase {
@ -96,7 +128,7 @@ class ControllerMethodReflectorTest extends \Test\TestCase {
'arguments'
);
$this->assertEquals(array('arg' => null, 'arg2' => 'hi'), $reader->getParameters());
$this->assertEquals(array('arg' => null, 'arg2' => 'hi'), $reader->getParameters());
}
@ -108,8 +140,32 @@ class ControllerMethodReflectorTest extends \Test\TestCase {
'arguments2'
);
$this->assertEquals(array('arg' => null), $reader->getParameters());
$this->assertEquals(array('arg' => null), $reader->getParameters());
}
public function testInheritance() {
$reader = new ControllerMethodReflector();
$reader->reflect('OC\AppFramework\Utility\EndController', 'test');
$this->assertTrue($reader->hasAnnotation('Annotation'));
}
public function testInheritanceOverride() {
$reader = new ControllerMethodReflector();
$reader->reflect('OC\AppFramework\Utility\EndController', 'test2');
$this->assertTrue($reader->hasAnnotation('NoAnnotation'));
$this->assertFalse($reader->hasAnnotation('Annotation'));
}
public function testInheritanceOverrideNoDocblock() {
$reader = new ControllerMethodReflector();
$reader->reflect('OC\AppFramework\Utility\EndController', 'test3');
$this->assertFalse($reader->hasAnnotation('Annotation'));
}
}