mirror of
https://github.com/Karaka-Management/oms-Admin.git
synced 2026-01-28 04:38:39 +00:00
Add tests
This commit is contained in:
parent
5b8b59a1f8
commit
3f9e1029c8
26
tests/Admin/AdminTest.php
Normal file
26
tests/Admin/AdminTest.php
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Admin;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class AdminTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected const MODULE_NAME = 'Admin';
|
||||
protected const URI_LOAD = 'http://127.0.0.1/en/backend/admin';
|
||||
|
||||
use \Modules\tests\ModuleTestTrait;
|
||||
}
|
||||
166
tests/Controller/Api/ApiControllerAccountTrait.php
Normal file
166
tests/Controller/Api/ApiControllerAccountTrait.php
Normal file
|
|
@ -0,0 +1,166 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Controller\Api;
|
||||
|
||||
use phpOMS\Account\AccountStatus;
|
||||
use phpOMS\Account\AccountType;
|
||||
use phpOMS\Message\Http\HttpRequest;
|
||||
use phpOMS\Message\Http\HttpResponse;
|
||||
use phpOMS\Uri\HttpUri;
|
||||
|
||||
trait ApiControllerAccountTrait
|
||||
{
|
||||
/**
|
||||
* @testdox A user can be returned
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountGet() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', '1');
|
||||
|
||||
$this->module->apiAccountGet($request, $response);
|
||||
|
||||
self::assertEquals('admin', $response->get('')['response']->getName());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user can be updated
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountUpdate() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', 1);
|
||||
$request->setData('email', 'oms@orange-management.de');
|
||||
|
||||
$this->module->apiAccountUpdate($request, $response);
|
||||
$this->module->apiAccountGet($request, $response);
|
||||
|
||||
self::assertEquals('oms@orange-management.de', $response->get('')['response']->getEmail());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user can be found by name
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountFind() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('search', 'admin');
|
||||
|
||||
$this->module->apiAccountFind($request, $response);
|
||||
self::assertCount(1, $response->get(''));
|
||||
self::assertEquals('admin', $response->get('')[0]->getName1());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user and profile for the user can be created
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountAndProfileCreate() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('login', 'guest');
|
||||
$request->setData('password', 'guest');
|
||||
$request->setData('name1', 'Guest');
|
||||
$request->setData('email', 'test@email.com');
|
||||
$request->setData('type', AccountType::USER);
|
||||
$request->setData('status', AccountStatus::INACTIVE);
|
||||
|
||||
$this->module->apiAccountCreate($request, $response);
|
||||
|
||||
self::assertEquals('guest', $response->get('')['response']->getName());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user can be deleted
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountDelete() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
// mustn't create a profile otherwise it will not be possible to delete the account because of FK constraints
|
||||
$request->setData('name1', 'Guest');
|
||||
$request->setData('email', 'test@email.com');
|
||||
$request->setData('type', AccountType::USER);
|
||||
$request->setData('status', AccountStatus::INACTIVE);
|
||||
|
||||
$this->module->apiAccountCreate($request, $response);
|
||||
$request->setData('id', $response->get('')['response']->getId());
|
||||
$this->module->apiAccountDelete($request, $response);
|
||||
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid user cannot be created
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountCreateInvalid() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('status', 999);
|
||||
$request->setData('description', 'test description');
|
||||
|
||||
$this->module->apiAccountCreate($request, $response);
|
||||
self::assertEquals('validation', $response->get('account_create')::TYPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user group can be added to a user
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddGroupToAccount() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('account', 1);
|
||||
$request->setData('igroup-idlist', '1');
|
||||
|
||||
$this->module->apiAddGroupToAccount($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
}
|
||||
}
|
||||
165
tests/Controller/Api/ApiControllerGroupTrait.php
Normal file
165
tests/Controller/Api/ApiControllerGroupTrait.php
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Controller\Api;
|
||||
|
||||
use phpOMS\Account\GroupStatus;
|
||||
use phpOMS\Message\Http\HttpRequest;
|
||||
use phpOMS\Message\Http\HttpResponse;
|
||||
use phpOMS\Uri\HttpUri;
|
||||
|
||||
trait ApiControllerGroupTrait
|
||||
{
|
||||
/**
|
||||
* @testdox A user group can be returned
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupGet() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', '3');
|
||||
|
||||
$this->module->apiGroupGet($request, $response);
|
||||
|
||||
self::assertEquals('admin', $response->get('')['response']->getName());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user group can be updated
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupSet() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', '3');
|
||||
$request->setData('name', 'root');
|
||||
|
||||
$this->module->apiGroupUpdate($request, $response);
|
||||
$this->module->apiGroupGet($request, $response);
|
||||
|
||||
self::assertEquals('root', $response->get('')['response']->getName());
|
||||
|
||||
$request->setData('name', 'admin', true);
|
||||
$this->module->apiGroupUpdate($request, $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user group can be found by name
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupFind() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('search', 'admin');
|
||||
|
||||
$this->module->apiGroupFind($request, $response);
|
||||
self::assertCount(1, $response->get(''));
|
||||
self::assertEquals('admin', $response->get('')[0]->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user group can be created and deleted
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupCreateDelete() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('name', 'test');
|
||||
$request->setData('status', GroupStatus::INACTIVE);
|
||||
$request->setData('description', 'test description');
|
||||
|
||||
$this->module->apiGroupCreate($request, $response);
|
||||
|
||||
self::assertEquals('test', $response->get('')['response']->getName());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
|
||||
// test delete
|
||||
$request->setData('id', $response->get('')['response']->getId());
|
||||
$this->module->apiGroupDelete($request, $response);
|
||||
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid user group cannot be created
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupCreateInvalid() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('status', 999);
|
||||
$request->setData('description', 'test description');
|
||||
|
||||
$this->module->apiGroupCreate($request, $response);
|
||||
self::assertEquals('validation', $response->get('group_create')::TYPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user can be added to a user group
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddAccountToGroup() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('group', 1);
|
||||
$request->setData('iaccount-idlist', '1');
|
||||
|
||||
$this->module->apiAddAccountToGroup($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user and user group can be found by name
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountGroupFind() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('search', 'admin');
|
||||
|
||||
$this->module->apiAccountGroupFind($request, $response);
|
||||
self::assertCount(2, $response->get(''));
|
||||
self::assertEquals('admin', $response->get('')[0]['name'][0] ?? '');
|
||||
self::assertEquals('admin', $response->get('')[1]['name'][0] ?? '');
|
||||
}
|
||||
}
|
||||
131
tests/Controller/Api/ApiControllerModuleTrait.php
Normal file
131
tests/Controller/Api/ApiControllerModuleTrait.php
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Controller\Api;
|
||||
|
||||
use Modules\Admin\Models\ModuleStatusUpdateType;
|
||||
|
||||
use phpOMS\Message\Http\HttpRequest;
|
||||
use phpOMS\Message\Http\HttpResponse;
|
||||
use phpOMS\Uri\HttpUri;
|
||||
|
||||
trait ApiControllerModuleTrait
|
||||
{
|
||||
/**
|
||||
* @testdox The status of a module can be updated
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiModuleStatusUpdate() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('module', 'TestModule');
|
||||
|
||||
$request->setData('status', ModuleStatusUpdateType::INSTALL);
|
||||
$this->module->apiModuleStatusUpdate($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
|
||||
$request->setData('status', ModuleStatusUpdateType::ACTIVATE, true);
|
||||
$this->module->apiModuleStatusUpdate($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
|
||||
$request->setData('status', ModuleStatusUpdateType::DEACTIVATE, true);
|
||||
$this->module->apiModuleStatusUpdate($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
|
||||
$request->setData('status', ModuleStatusUpdateType::UNINSTALL, true);
|
||||
$this->module->apiModuleStatusUpdate($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A missing module cannot be updated
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiModuleStatusUpdateEmptyModule() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
|
||||
$request->setData('status', ModuleStatusUpdateType::INSTALL);
|
||||
$this->module->apiModuleStatusUpdate($request, $response);
|
||||
self::assertNull($response->get('module_stutus_update'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid module status cannot update a module
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiModuleStatusUpdateInvalidStatus() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('module', 'TestModule');
|
||||
|
||||
$request->setData('status', 99);
|
||||
$this->module->apiModuleStatusUpdate($request, $response);
|
||||
self::assertEquals('warning', $response->get('')['status']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid module cannot be updated
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiModuleStatusUpdateInvalidModule() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('module', 'invalid');
|
||||
|
||||
$request->setData('status', ModuleStatusUpdateType::INSTALL);
|
||||
$this->module->apiModuleStatusUpdate($request, $response);
|
||||
self::assertEquals('warning', $response->get('')['status']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A module can be re-initialized
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiReInit() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
|
||||
$routes = include __DIR__ . '/../../../../../Web/Api/Routes.php';
|
||||
$hooks = include __DIR__ . '/../../../../../Web/Api/Hooks.php';
|
||||
|
||||
$this->module->apiReInit($request, $response);
|
||||
|
||||
$routes2 = include __DIR__ . '/../../../../../Web/Api/Routes.php';
|
||||
$hooks2 = include __DIR__ . '/../../../../../Web/Api/Hooks.php';
|
||||
|
||||
self::assertEquals($routes, $routes2);
|
||||
self::assertEquals($hooks, $hooks2);
|
||||
}
|
||||
}
|
||||
267
tests/Controller/Api/ApiControllerPermissionTrait.php
Normal file
267
tests/Controller/Api/ApiControllerPermissionTrait.php
Normal file
|
|
@ -0,0 +1,267 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Controller\Api;
|
||||
|
||||
use phpOMS\Account\PermissionOwner;
|
||||
use phpOMS\Account\PermissionType;
|
||||
use phpOMS\Message\Http\HttpRequest;
|
||||
use phpOMS\Message\Http\HttpResponse;
|
||||
use phpOMS\Uri\HttpUri;
|
||||
|
||||
trait ApiControllerPermissionTrait
|
||||
{
|
||||
/**
|
||||
* @testdox A permission can be added to a user group
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddGroupPermission() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::GROUP);
|
||||
$request->setData('permissionref', 1);
|
||||
|
||||
$this->module->apiAddGroupPermission($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A group permission can be returned
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupPermissionGet() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', '2');
|
||||
|
||||
$this->module->apiGroupPermissionGet($request, $response);
|
||||
|
||||
self::assertEquals(1, $response->get('')['response']->getGroup());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user group permission can be created and deleted
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupPermissionCreateDelete() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::GROUP);
|
||||
$request->setData('permissionref', 1);
|
||||
|
||||
$this->module->apiAddGroupPermission($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
|
||||
// test delete
|
||||
$request->setData('id', $response->get('')['response']->getId());
|
||||
$this->module->apiGroupPermissionDelete($request, $response);
|
||||
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A permission with missing data cannot be added to a user group
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddGroupPermissionInvalidData() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::GROUP);
|
||||
|
||||
$this->module->apiAddGroupPermission($request, $response);
|
||||
self::assertEquals('validation', $response->get('permission_create')::TYPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid permission type cannot be added to a user group
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddGroupPermissionInvalidType() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::ACCOUNT);
|
||||
$request->setData('permissionref', 1);
|
||||
|
||||
$this->module->apiAddGroupPermission($request, $response);
|
||||
self::assertEquals('validation', $response->get('permission_create')::TYPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user group permission can be updated
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiGroupPermissionUpdate() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', 1);
|
||||
$request->setData('permissionread', PermissionType::READ);
|
||||
|
||||
$this->module->apiGroupPermissionUpdate($request, $response);
|
||||
|
||||
self::assertEquals(PermissionType::READ, $response->get('')['response']->getPermission());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
|
||||
$request->setData('permissioncreate', PermissionType::CREATE);
|
||||
$request->setData('permissionupdate', PermissionType::MODIFY);
|
||||
$request->setData('permissiondelete', PermissionType::DELETE);
|
||||
$request->setData('permissionpermission', PermissionType::PERMISSION);
|
||||
|
||||
$this->module->apiGroupPermissionUpdate($request, $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A permission can be added to a user
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddAccountPermission() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::ACCOUNT);
|
||||
$request->setData('permissionref', 1);
|
||||
|
||||
$this->module->apiAddAccountPermission($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user permission can be returned
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountPermissionGet() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', '1');
|
||||
|
||||
$this->module->apiAccountPermissionGet($request, $response);
|
||||
|
||||
self::assertEquals(1, $response->get('')['response']->getAccount());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user permission can be created and deleted
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountPermissionCreateDelete() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::ACCOUNT);
|
||||
$request->setData('permissionref', 1);
|
||||
|
||||
$this->module->apiAddAccountPermission($request, $response);
|
||||
self::assertEquals('ok', $response->get('')['status']);
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
|
||||
// test delete
|
||||
$request->setData('id', $response->get('')['response']->getId());
|
||||
$this->module->apiAccountPermissionDelete($request, $response);
|
||||
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A permission with missing data cannot be added to a user
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddAccountPermissionInvalidData() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::ACCOUNT);
|
||||
|
||||
$this->module->apiAddAccountPermission($request, $response);
|
||||
self::assertEquals('validation', $response->get('permission_create')::TYPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid permission type cannot be added to a user
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAddAccountPermissionInvalidType() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('permissionowner', PermissionOwner::GROUP);
|
||||
$request->setData('permissionref', 1);
|
||||
|
||||
$this->module->apiAddAccountPermission($request, $response);
|
||||
self::assertEquals('validation', $response->get('permission_create')::TYPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A user permission can be updated
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiAccountPermissionUpdate() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('id', 1);
|
||||
$request->setData('permissionread', PermissionType::READ);
|
||||
|
||||
$this->module->apiAccountPermissionUpdate($request, $response);
|
||||
|
||||
self::assertEquals(PermissionType::READ, $response->get('')['response']->getPermission());
|
||||
self::assertGreaterThan(0, $response->get('')['response']->getId());
|
||||
}
|
||||
}
|
||||
58
tests/Controller/Api/ApiControllerSettingsTrait.php
Normal file
58
tests/Controller/Api/ApiControllerSettingsTrait.php
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Controller\Api;
|
||||
|
||||
use phpOMS\Message\Http\HttpRequest;
|
||||
use phpOMS\Message\Http\HttpResponse;
|
||||
use phpOMS\Uri\HttpUri;
|
||||
|
||||
trait ApiControllerSettingsTrait
|
||||
{
|
||||
/**
|
||||
* @testdox Application settings can be read from the database
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiSettingsGet() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('name', '1000000019');
|
||||
|
||||
$this->module->apiSettingsGet($request, $response);
|
||||
self::assertEquals('DE', $response->get('')['response']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox Application settings can be set in the database
|
||||
* @covers Modules\Admin\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testApiSettingsSet() : void
|
||||
{
|
||||
$response = new HttpResponse();
|
||||
$request = new HttpRequest(new HttpUri(''));
|
||||
|
||||
$request->getHeader()->setAccount(1);
|
||||
$request->setData('settings', \json_encode([['name' => '1000000019', 'content' => 'US']]));
|
||||
$this->module->apiSettingsSet($request, $response);
|
||||
|
||||
$request->setData('name', '1000000019');
|
||||
$this->module->apiSettingsGet($request, $response);
|
||||
self::assertEquals('US', $response->get('')['response']);
|
||||
}
|
||||
}
|
||||
96
tests/Controller/ApiControllerTest.php
Normal file
96
tests/Controller/ApiControllerTest.php
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Controller;
|
||||
|
||||
require_once __DIR__ . '/../../Autoloader.php';
|
||||
|
||||
use Model\CoreSettings;
|
||||
|
||||
use Modules\Admin\Models\AccountPermission;
|
||||
|
||||
use Modules\tests\Admin\Controller\Api\ApiControllerAccountTrait;
|
||||
use Modules\tests\Admin\Controller\Api\ApiControllerGroupTrait;
|
||||
use Modules\tests\Admin\Controller\Api\ApiControllerModuleTrait;
|
||||
use Modules\tests\Admin\Controller\Api\ApiControllerPermissionTrait;
|
||||
use Modules\tests\Admin\Controller\Api\ApiControllerSettingsTrait;
|
||||
|
||||
use phpOMS\Account\Account;
|
||||
use phpOMS\Account\AccountManager;
|
||||
use phpOMS\Account\PermissionType;
|
||||
use phpOMS\Application\ApplicationAbstract;
|
||||
use phpOMS\Dispatcher\Dispatcher;
|
||||
use phpOMS\Event\EventManager;
|
||||
use phpOMS\Module\ModuleAbstract;
|
||||
use phpOMS\Module\ModuleManager;
|
||||
use phpOMS\Router\WebRouter;
|
||||
use phpOMS\Utils\TestUtils;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Controller\ApiControllerTest: Admin api controller
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class ApiControllerTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected ApplicationAbstract $app;
|
||||
protected ModuleAbstract $module;
|
||||
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->app = new class() extends ApplicationAbstract
|
||||
{
|
||||
protected string $appName = 'Api';
|
||||
};
|
||||
|
||||
$this->app->dbPool = $GLOBALS['dbpool'];
|
||||
$this->app->orgId = 1;
|
||||
$this->app->appName = 'Backend';
|
||||
$this->app->accountManager = new AccountManager($GLOBALS['session']);
|
||||
$this->app->appSettings = new CoreSettings($this->app->dbPool->get());
|
||||
$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');
|
||||
|
||||
$account = new Account();
|
||||
TestUtils::setMember($account, 'id', 1);
|
||||
|
||||
$permission = new AccountPermission();
|
||||
$permission->setUnit(1);
|
||||
$permission->setApp('backend');
|
||||
$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('Admin');
|
||||
|
||||
TestUtils::setMember($this->module, 'app', $this->app);
|
||||
}
|
||||
|
||||
use ApiControllerSettingsTrait;
|
||||
use ApiControllerAccountTrait;
|
||||
use ApiControllerGroupTrait;
|
||||
use ApiControllerPermissionTrait;
|
||||
use ApiControllerModuleTrait;
|
||||
}
|
||||
103
tests/Models/AccountMapperTest.php
Normal file
103
tests/Models/AccountMapperTest.php
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\Account;
|
||||
use Modules\Admin\Models\AccountMapper;
|
||||
use phpOMS\Account\AccountStatus;
|
||||
use phpOMS\Account\AccountType;
|
||||
use phpOMS\Auth\LoginReturnType;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\LocalizationMapperTest: Account database mapper
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class AccountMapperTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @testdox The model can be created and read from the database
|
||||
* @covers Modules\Admin\Models\AccountMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testCR() : void
|
||||
{
|
||||
$account = new Account();
|
||||
|
||||
$account->setName('TestLogin');
|
||||
$account->setName1('Donald');
|
||||
$account->setName2('Fauntleroy');
|
||||
$account->setName3('Duck');
|
||||
$account->setLoginTries(3);
|
||||
$account->setEmail('d.duck@duckburg.com');
|
||||
$account->setStatus(AccountStatus::ACTIVE);
|
||||
$account->setType(AccountType::USER);
|
||||
|
||||
$id = AccountMapper::create($account);
|
||||
self::assertGreaterThan(0, $account->getId());
|
||||
self::assertEquals($id, $account->getId());
|
||||
|
||||
$accountR = AccountMapper::get($account->getId());
|
||||
self::assertEquals($account->getCreatedAt()->format('Y-m-d'), $accountR->getCreatedAt()->format('Y-m-d'));
|
||||
self::assertEquals($account->getName(), $accountR->getName());
|
||||
self::assertEquals($account->getName1(), $accountR->getName1());
|
||||
self::assertEquals($account->getName2(), $accountR->getName2());
|
||||
self::assertEquals($account->getName3(), $accountR->getName3());
|
||||
self::assertEquals($account->getStatus(), $accountR->getStatus());
|
||||
self::assertEquals($account->getType(), $accountR->getType());
|
||||
self::assertEquals($account->getEmail(), $accountR->getEmail());
|
||||
self::assertEquals($account->getLoginTries(), $accountR->getLoginTries());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A empty user password results in a failed login
|
||||
* @covers Modules\Admin\Models\AccountMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testEmptyPasswordLogin() : void
|
||||
{
|
||||
self::assertEquals(LoginReturnType::WRONG_PASSWORD, AccountMapper::login('admin', ''));
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid user password results in a failed login
|
||||
* @covers Modules\Admin\Models\AccountMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testInvalidPasswordLogin() : void
|
||||
{
|
||||
self::assertEquals(LoginReturnType::WRONG_PASSWORD, AccountMapper::login('admin', 'invalid'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid user name results in a failed login
|
||||
* @covers Modules\Admin\Models\AccountMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testInvalidUsernameLogin() : void
|
||||
{
|
||||
self::assertEquals(LoginReturnType::WRONG_USERNAME, AccountMapper::login('zzzzInvalidTestzzz', 'orange'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A valid user name and password results in a successful login
|
||||
* @covers Modules\Admin\Models\AccountMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testValidLogin() : void
|
||||
{
|
||||
self::assertGreaterThan(0, AccountMapper::login('admin', 'orange'));
|
||||
}
|
||||
}
|
||||
36
tests/Models/AccountPermissionTest.php
Normal file
36
tests/Models/AccountPermissionTest.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\AccountPermission;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\AccountPermissionTest: Account permission
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class AccountPermissionTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @testdox The account permission has the expected default values after initialization
|
||||
* @covers Modules\Admin\Models\AccountPermission
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
$account = new AccountPermission();
|
||||
self::assertEquals(0, $account->getAccount());
|
||||
}
|
||||
}
|
||||
49
tests/Models/AccountTest.php
Normal file
49
tests/Models/AccountTest.php
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\Account;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\AccountTest: Account model
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class AccountTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @testdox The account has the expected default values after initialization
|
||||
* @covers Modules\Admin\Models\Account
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
$account = new Account();
|
||||
self::assertEquals(0, $account->getLoginTries());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The login tries can be set and returned
|
||||
* @covers Modules\Admin\Models\Account
|
||||
* @group module
|
||||
*/
|
||||
public function testLoginTriesInputOutput() : void
|
||||
{
|
||||
$account = new Account();
|
||||
|
||||
$account->setLoginTries(3);
|
||||
self::assertEquals(3, $account->getLoginTries());
|
||||
}
|
||||
}
|
||||
53
tests/Models/GroupMapperTest.php
Normal file
53
tests/Models/GroupMapperTest.php
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\Group;
|
||||
use Modules\Admin\Models\GroupMapper;
|
||||
use Modules\Admin\Models\GroupPermission;
|
||||
use Modules\Admin\Models\GroupPermissionMapper;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\GroupMapperTest: Group mapper
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class GroupMapperTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @testdox All groups which have permissions for a module can be returned
|
||||
* @covers Modules\Admin\Models\GroupMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testGroupPermissionForModule() : void
|
||||
{
|
||||
$group = new Group('test');
|
||||
$groupId = GroupMapper::create($group);
|
||||
|
||||
$permission = new GroupPermission($groupId, null, null, 'Admin');
|
||||
GroupPermissionMapper::create($permission);
|
||||
|
||||
$permissions = GroupMapper::getPermissionForModule('Admin');
|
||||
|
||||
foreach ($permissions as $p) {
|
||||
if ($p->getId() === $groupId) {
|
||||
self::assertTrue(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
self::assertTrue(false);
|
||||
}
|
||||
}
|
||||
36
tests/Models/GroupPermissionTest.php
Normal file
36
tests/Models/GroupPermissionTest.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\GroupPermission;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\GroupPermissionTest: Group permission
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class GroupPermissionTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @testdox The group permission has the expected default values after initialization
|
||||
* @covers Modules\Admin\Models\GroupPermission
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
$group = new GroupPermission();
|
||||
self::assertEquals(0, $group->getGroup());
|
||||
}
|
||||
}
|
||||
66
tests/Models/GroupTest.php
Normal file
66
tests/Models/GroupTest.php
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\Group;
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\GroupTest: Group model
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class GroupTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @testdox The group has the expected default values after initialization
|
||||
* @covers Modules\Admin\Models\Group
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
$group = new Group();
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $group->getCreatedAt()->format('Y-m-d'));
|
||||
self::assertEquals(0, $group->getCreatedBy()->getId());
|
||||
self::assertEquals('', $group->getDescriptionRaw());
|
||||
self::assertEquals([], $group->getAccounts());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The description can be set and returned
|
||||
* @covers Modules\Admin\Models\Group
|
||||
* @group module
|
||||
*/
|
||||
public function testDescriptionInputOutput() : void
|
||||
{
|
||||
$group = new Group();
|
||||
|
||||
$group->setDescriptionRaw('Some test');
|
||||
self::assertEquals('Some test', $group->getDescriptionRaw());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The creator can be set and returned
|
||||
* @covers Modules\Admin\Models\Group
|
||||
* @group module
|
||||
*/
|
||||
public function testCreatorInputOutput() : void
|
||||
{
|
||||
$group = new Group();
|
||||
|
||||
$group->setCreatedBy(new NullAccount(3));
|
||||
self::assertEquals(3, $group->getCreatedBy()->getId());
|
||||
}
|
||||
}
|
||||
44
tests/Models/LocalizationMapperTest.php
Normal file
44
tests/Models/LocalizationMapperTest.php
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\LocalizationMapper;
|
||||
use phpOMS\Localization\Localization;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\LocalizationMapperTest: Localization database mapper
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class LocalizationMapperTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
/**
|
||||
* @testdox The model can be created and read from the database
|
||||
* @covers Modules\Admin\Models\LocalizationMapper
|
||||
* @group module
|
||||
*/
|
||||
public function testCR() : void
|
||||
{
|
||||
$localization = Localization::fromJson(
|
||||
\json_decode(\file_get_contents(__DIR__ . '/om_OMS.json'), true)
|
||||
);
|
||||
|
||||
$id = LocalizationMapper::create($localization);
|
||||
$localizationRemote = LocalizationMapper::get($id);
|
||||
|
||||
self::assertEquals('fahrenheit', $localizationRemote->getTemperature());
|
||||
self::assertEquals($localization->jsonSerialize(), $localizationRemote->jsonSerialize());
|
||||
}
|
||||
}
|
||||
105
tests/Models/ModuleTest.php
Normal file
105
tests/Models/ModuleTest.php
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Admin\Models;
|
||||
|
||||
use Modules\Admin\Models\Module;
|
||||
use phpOMS\Module\ModuleStatus;
|
||||
|
||||
/**
|
||||
* @testdox Modules\tests\Admin\Models\ModuleTest: Module container
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class ModuleTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected Module $module;
|
||||
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->module = new Module();
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The module has the expected default values after initialization
|
||||
* @covers Modules\Admin\Models\Module
|
||||
* @group module
|
||||
*/
|
||||
public function testDefault() : void
|
||||
{
|
||||
self::assertEquals(0, $this->module->getId());
|
||||
self::assertInstanceOf('\DateTime', $this->module->getCreatedAt());
|
||||
self::assertEquals('', $this->module->getName());
|
||||
self::assertEquals('', $this->module->getDescription());
|
||||
self::assertEquals(ModuleStatus::INACTIVE, $this->module->getStatus());
|
||||
self::assertEquals(\json_encode($this->module->jsonSerialize()), $this->module->__toString());
|
||||
self::assertEquals($this->module->jsonSerialize(), $this->module->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The name can be set and returned
|
||||
* @covers Modules\Admin\Models\Module
|
||||
* @group module
|
||||
*/
|
||||
public function testNameInputOutput() : void
|
||||
{
|
||||
$this->module->setName('Name');
|
||||
self::assertEquals('Name', $this->module->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The description can be set and returned
|
||||
* @covers Modules\Admin\Models\Module
|
||||
* @group module
|
||||
*/
|
||||
public function testDescriptionInputOutput() : void
|
||||
{
|
||||
$this->module->setDescription('Desc');
|
||||
self::assertEquals('Desc', $this->module->getDescription());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The status can be set and returned
|
||||
* @covers Modules\Admin\Models\Module
|
||||
* @group module
|
||||
*/
|
||||
public function testStatusInputOutput() : void
|
||||
{
|
||||
$this->module->setStatus(ModuleStatus::ACTIVE);
|
||||
self::assertEquals(ModuleStatus::ACTIVE, $this->module->getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox The module can be serialized
|
||||
* @covers Modules\Admin\Models\Module
|
||||
* @group module
|
||||
*/
|
||||
public function testSerializations() : void
|
||||
{
|
||||
self::assertEquals(\json_encode($this->module->jsonSerialize()), $this->module->__toString());
|
||||
self::assertEquals($this->module->jsonSerialize(), $this->module->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* @testdox A invalid status throws a InvalidEnumValue exception
|
||||
* @covers Modules\Admin\Models\Module
|
||||
* @group module
|
||||
*/
|
||||
public function testInvalidStatus() : void
|
||||
{
|
||||
self::expectException(\phpOMS\Stdlib\Base\Exception\InvalidEnumValue::class);
|
||||
|
||||
$this->module->setStatus(9999);
|
||||
}
|
||||
}
|
||||
67
tests/Models/om_OMS.json
Normal file
67
tests/Models/om_OMS.json
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"language": "en",
|
||||
"country": "US",
|
||||
"currency": {
|
||||
"code": "USD",
|
||||
"position": 0,
|
||||
"format": "1"
|
||||
},
|
||||
"thousand": ",",
|
||||
"decimal": ".",
|
||||
"angle": "deg",
|
||||
"temperature": "fahrenheit",
|
||||
"weight": {
|
||||
"very_light": "mg",
|
||||
"light": "g",
|
||||
"medium": "kg",
|
||||
"heavy": "t",
|
||||
"very_heavy": "t"
|
||||
},
|
||||
"speed": {
|
||||
"very_slow": "mps",
|
||||
"slow": "ms",
|
||||
"medium": "kph",
|
||||
"fast": "kph",
|
||||
"very_fast": "management",
|
||||
"sea": "knot"
|
||||
},
|
||||
"length": {
|
||||
"very_short": "micron",
|
||||
"short": "mm",
|
||||
"medium": "cm",
|
||||
"long": "m",
|
||||
"very_long": "km",
|
||||
"sea": "mile"
|
||||
},
|
||||
"area": {
|
||||
"very_small": "micron",
|
||||
"small": "mm",
|
||||
"medium": "cm",
|
||||
"large": "m",
|
||||
"very_large": "orange"
|
||||
},
|
||||
"volume": {
|
||||
"very_small": "mul",
|
||||
"small": "ml",
|
||||
"medium": "l",
|
||||
"large": "cm",
|
||||
"very_large": "m",
|
||||
"teaspoon": "Metric tsp",
|
||||
"tablespoon": "Metric tblsp",
|
||||
"glass": "Metric cup"
|
||||
},
|
||||
"datetime": {
|
||||
"very_short": "d.m",
|
||||
"short": "m.y",
|
||||
"medium": "Y.m.d",
|
||||
"long": "Y.m.d h:i",
|
||||
"very_long": "Y.m.d h:i:s"
|
||||
},
|
||||
"precision": {
|
||||
"very_short": 0,
|
||||
"short": 1,
|
||||
"medium": 2,
|
||||
"long": 3,
|
||||
"very_long": 5
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user