From 105fb7a472036d7c22803d462306fa4e9b1e6ba7 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Wed, 18 Oct 2023 01:03:57 +0000 Subject: [PATCH] add invalid api function tests --- .../Api/ApiControllerEquipmentTrait.php | 110 ++++++++++++++---- 1 file changed, 85 insertions(+), 25 deletions(-) diff --git a/tests/Controller/Api/ApiControllerEquipmentTrait.php b/tests/Controller/Api/ApiControllerEquipmentTrait.php index 46b80c7..afa87a1 100755 --- a/tests/Controller/Api/ApiControllerEquipmentTrait.php +++ b/tests/Controller/Api/ApiControllerEquipmentTrait.php @@ -12,39 +12,99 @@ */ declare(strict_types=1); -namespace Modules\EquipmentManagement\tests\Controller\Api; +namespace Modules\EquipmentManagement\tests\Controller; -use Modules\EquipmentManagement\Models\EquipmentTypeMapper; -use phpOMS\Message\Http\HttpRequest; -use phpOMS\Message\Http\HttpResponse; -use phpOMS\Message\Http\RequestStatusCode; -use phpOMS\Uri\HttpUri; +use Model\CoreSettings; +use Modules\Admin\Models\AccountPermission; +use Modules\EquipmentManagement\tests\Controller\Api\ApiControllerAttributeTrait; +use Modules\EquipmentManagement\tests\Controller\Api\ApiControllerEquipmentTrait; +use phpOMS\Account\Account; +use phpOMS\Account\AccountManager; +use phpOMS\Account\PermissionType; +use phpOMS\Application\ApplicationAbstract; +use phpOMS\DataStorage\Session\HttpSession; +use phpOMS\Dispatcher\Dispatcher; +use phpOMS\Event\EventManager; +use phpOMS\Localization\L11nManager; +use phpOMS\Module\ModuleAbstract; +use phpOMS\Module\ModuleManager; +use phpOMS\Router\WebRouter; use phpOMS\Utils\TestUtils; -use phpOMS\Utils\RnG\Text; -trait ApiControllerEquipmentTrait +/** + * @testdox Modules\EquipmentManagement\tests\Controller\ApiControllerTest: EquipmentManagement api controller + * + * @internal + */ +final class ApiControllerTest extends \PHPUnit\Framework\TestCase { - /** - * @covers Modules\EquipmentManagement\Controller\ApiEquipmentController - * @group module - */ - public function testApiEquipmentCreate() : void - { - $equipmentType = EquipmentTypeMapper::getAll()->execute(); - $equipmentTypeCount = \count($equipmentType); + protected ApplicationAbstract $app; + /** + * @var \Modules\EquipmentManagement\Controller\ApiController + */ + protected ModuleAbstract $module; + + protected ModuleAbstract $attrModule; + + /** + * {@inheritdoc} + */ + protected function setUp() : void + { + $this->app = new class() extends ApplicationAbstract + { + protected string $appName = 'Api'; + }; + + $this->app->dbPool = $GLOBALS['dbpool']; + $this->app->unitId = 1; + $this->app->accountManager = new AccountManager($GLOBALS['session']); + $this->app->appSettings = new CoreSettings(); + $this->app->moduleManager = new ModuleManager($this->app, __DIR__ . '/../../../../Modules/'); + $this->app->dispatcher = new Dispatcher($this->app); + $this->app->eventManager = new EventManager($this->app->dispatcher); + $this->app->eventManager->importFromFile(__DIR__ . '/../../../../Web/Api/Hooks.php'); + $this->app->sessionManager = new HttpSession(36000); + $this->app->l11nManager = new L11nManager(); + + $account = new Account(); + TestUtils::setMember($account, 'id', 1); + + $permission = new AccountPermission(); + $permission->unit = 1; + $permission->app = 2; + $permission->setPermission( + PermissionType::READ + | PermissionType::CREATE + | PermissionType::MODIFY + | PermissionType::DELETE + | PermissionType::PERMISSION + ); + + $account->addPermission($permission); + + $this->app->accountManager->add($account); + $this->app->router = new WebRouter(); + + $this->module = $this->app->moduleManager->get('EquipmentManagement', 'ApiEquipment'); + $this->attrModule = $this->app->moduleManager->get('EquipmentManagement', 'ApiEquipmentAttribute'); + + TestUtils::setMember($this->module, 'app', $this->app); + TestUtils::setMember($this->attrModule, 'app', $this->app); + } + + use ApiControllerEquipmentTrait; + use ApiControllerAttributeTrait; + } + + public function testInvalidapiInspectionTypeL11nDelete() : void + { $response = new HttpResponse(); $request = new HttpRequest(new HttpUri('')); - $LOREM = \array_slice(Text::LOREM_IPSUM, 0, 25); - $LOREM_COUNT = \count($LOREM) - 1; - $request->header->account = 1; - $request->setData('name', \ucfirst(Text::LOREM_IPSUM[\mt_rand(0, $LOREM_COUNT - 1)])); - $request->setData('type', \mt_rand(1, $equipmentTypeCount)); - $request->setData('status', 1); - - $this->module->apiEquipmentCreate($request, $response); - self::assertGreaterThan(0, $response->getDataArray('')['response']->id); + $this->module->apiInspectionTypeL11nDelete($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); } }