@ -45,13 +45,20 @@ class ProvisioningApiMiddlewareTest extends TestCase {
public function dataAnnotation() {
return [
[false, false, false, false],
[false, false, true, false],
[false, true, true, false],
[ true, false, false, true],
[ true, false, true, false],
[ true, true, false, false],
[ true, true, true, false],
[false, false, false, false, false],
[false, false, true, false, false],
[false, true, true, false, false],
[ true, false, false, false, true],
[ true, false, true, false, false],
[ true, true, false, false, false],
[ true, true, true, false, false],
[false, false, false, true, false],
[false, false, true, true, false],
[false, true, true, true, false],
[ true, false, false, true, false],
[ true, false, true, true, false],
[ true, true, false, true, false],
[ true, true, true, true, false],
];
}
@ -63,7 +70,7 @@ class ProvisioningApiMiddlewareTest extends TestCase {
* @param bool $isSubAdmin
* @param bool $shouldThrowException
*/
public function testBeforeController($subadminRequired, $isAdmin, $isSubAdmin, $shouldThrowException) {
public function testBeforeController($subadminRequired, $isAdmin, $isSubAdmin, $hasSettingAuthorizationAnnotation, $ shouldThrowException) {
$middleware = new ProvisioningApiMiddleware(
$this->reflector,
$isAdmin,
@ -71,8 +78,15 @@ class ProvisioningApiMiddlewareTest extends TestCase {
);
$this->reflector->method('hasAnnotation')
->with('NoSubAdminRequired')
->willReturn(!$subadminRequired);
->willReturnCallback(function ($annotation) use ($subadminRequired, $hasSettingAuthorizationAnnotation) {
if ($annotation === 'NoSubAdminRequired') {
return !$subadminRequired;
}
if ($annotation === 'AuthorizedAdminSetting') {
return $hasSettingAuthorizationAnnotation;
}
return false;
});
try {
$middleware->beforeController(