diff --git a/tests/Controller/Api/ApiControllerVehicleTrait.php b/tests/Controller/Api/ApiControllerVehicleTrait.php index dfe4363..d8a0f0f 100644 --- a/tests/Controller/Api/ApiControllerVehicleTrait.php +++ b/tests/Controller/Api/ApiControllerVehicleTrait.php @@ -12,99 +12,42 @@ */ declare(strict_types=1); -namespace Modules\FleetManagement\tests\Controller; +namespace Modules\FleetManagement\tests\Controller\Api; -use Model\CoreSettings; -use Modules\Admin\Models\AccountPermission; -use Modules\FleetManagement\tests\Controller\Api\ApiControllerVehicleTrait; -use Modules\FleetManagement\tests\Controller\Api\ApiControllerAttributeTrait; -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 Modules\FleetManagement\Models\FuelTypeMapper; +use Modules\FleetManagement\Models\VehicleTypeMapper; +use phpOMS\Message\Http\HttpRequest; +use phpOMS\Message\Http\HttpResponse; +use phpOMS\Message\Http\RequestStatusCode; +use phpOMS\Uri\HttpUri; use phpOMS\Utils\TestUtils; +use phpOMS\Utils\RnG\Text; -/** - * @testdox Modules\FleetManagement\tests\Controller\ApiControllerTest: FleetManagement api controller - * - * @internal - */ -final class ApiControllerTest extends \PHPUnit\Framework\TestCase +trait ApiControllerVehicleTrait { - protected ApplicationAbstract $app; - /** - * @var \Modules\FleetManagement\Controller\ApiController + * @covers Modules\FleetManagement\Controller\ApiVehicleController + * @group module */ - protected ModuleAbstract $module; - - protected ModuleAbstract $attrModule; - - /** - * {@inheritdoc} - */ - protected function setUp() : void + public function testApiVehicleCreate() : void { - $this->app = new class() extends ApplicationAbstract - { - protected string $appName = 'Api'; - }; + $vehicleType = VehicleTypeMapper::getAll()->execute(); + $vehicleTypeCount = \count($vehicleType); + $fuelTypeCount = FuelTypeMapper::count()->execute(); - $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('FleetManagement', 'ApiVehicle'); - $this->attrModule = $this->app->moduleManager->get('FleetManagement', 'ApiVehicleAttribute'); - - TestUtils::setMember($this->module, 'app', $this->app); - TestUtils::setMember($this->attrModule, 'app', $this->app); - } - - use ApiControllerVehicleTrait; - use ApiControllerAttributeTrait; - } - - public function testInvalidapiNoteCreate() : 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; - $this->module->apiNoteCreate($request, $response); - self::assertEquals(RequestStatusCode::R_400, $response->header->status); + $request->setData('name', \ucfirst(Text::LOREM_IPSUM[\mt_rand(0, $LOREM_COUNT - 1)])); + $request->setData('type', \mt_rand(1, $vehicleTypeCount)); + $request->setData('fuel', \mt_rand(1, $fuelTypeCount)); + $request->setData('status', 1); + + $this->module->apiVehicleCreate($request, $response); + self::assertGreaterThan(0, $response->getDataArray('')['response']->id); } }