Skip to content
Snippets Groups Projects
Commit 31d312b9 authored by Guillaume Heurtier's avatar Guillaume Heurtier
Browse files

FEAT #13676 TIME 7:00 finished improving resource tests

parent 570dbf76
No related branches found
No related tags found
No related merge requests found
......@@ -20,13 +20,13 @@
<file>test/unitTests/app/group/PrivilegeControllerTest.php</file>
<file>test/unitTests/app/entity/ListTemplateControllerTest.php</file>
<file>test/unitTests/app/indexingModel/IndexingModelControllerTest.php</file>
<file>test/unitTests/app/indexing/IndexingControllerTest.php</file>
<file>test/unitTests/app/notification/NotificationControllerTest.php</file>
<file>test/unitTests/app/notification/NotificationScheduleControllerTest.php</file>
<file>test/unitTests/app/parameter/ParameterControllerTest.php</file>
<file>test/unitTests/app/priority/PriorityControllerTest.php</file>
<file>test/unitTests/app/resource/ResControllerTest.php</file>
<file>test/unitTests/app/resource/ResourceListControllerTest.php</file>
<file>test/unitTests/app/indexing/IndexingControllerTest.php</file>
<file>test/unitTests/app/resource/ExportControllerTest.php</file>
<file>test/unitTests/app/resource/LinkControllerTest.php</file>
<file>test/unitTests/app/entity/ListInstanceControllerTest.php</file>
......
......@@ -95,6 +95,9 @@ class WatermarkController
return $fileContent;
}
/**
* @codeCoverageIgnore
*/
public static function watermarkAttachment(array $args)
{
ValidatorModel::notEmpty($args, ['attachmentId', 'path']);
......
......@@ -81,6 +81,9 @@ class ChronoModel
return implode('', $chronoNumber);
}
/**
* @codeCoverageIgnore
*/
public static function getChronoGlobal()
{
$chronoId = 'chrono_global_' . date('Y');
......@@ -99,6 +102,9 @@ class ChronoModel
return $chrono;
}
/**
* @codeCoverageIgnore
*/
public static function getChronoEntity($entityId)
{
$chronoId = "chrono_{$entityId}_" . date('Y');
......
......@@ -276,6 +276,27 @@ class IndexingControllerTest extends TestCase
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Resource does not exist', $responseBody->errors);
\Resource\models\ResModel::update([
'set' => ['status' => ''],
'where' => ['res_id = ?'],
'data' => [$GLOBALS['resources'][2]]
]);
$body = [
'resource' => $GLOBALS['resources'][2]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $indexingController->setAction($fullRequest, new \Slim\Http\Response(), ['groupId' => 2, 'actionId' => '20']);
$responseBody = json_decode((string)$response->getBody());
print_r($responseBody);
$this->assertSame(204, $response->getStatusCode());
\Resource\models\ResModel::update([
'set' => ['status' => 'NEW'],
'where' => ['res_id = ?'],
'data' => [$GLOBALS['resources'][2]]
]);
$GLOBALS['login'] = 'superadmin';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
......
......@@ -163,8 +163,15 @@ class ExportControllerTest extends TestCase
$response = $ExportController->updateExport($fullRequest, new \Slim\Http\Response(), ['userId' => 19, 'groupId' => 2, 'basketId' => $myBasket['id']]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(null, $responseBody);
$headers = $response->getHeaders();
$this->assertSame('application/pdf', $headers['Content-Type'][0]);
$response = $ExportController->updateExport($fullRequest, new \Slim\Http\Response(), ['userId' => 19, 'groupId' => 2, 'basketId' => $myBasket['id']]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(null, $responseBody);
$headers = $response->getHeaders();
$this->assertSame('application/pdf', $headers['Content-Type'][0]);
// GET
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
......
This diff is collapsed.
......@@ -13,10 +13,39 @@ class ResourceListControllerTest extends TestCase
{
public function testGet()
{
$listDisplay = \Basket\models\GroupBasketModel::get([
'select' => ['list_display'],
'where' => ['basket_id = ?', 'group_id = ?'],
'data' => ['MyBasket', 'AGENT']
]);
$listDisplay = json_decode($listDisplay[0]['list_display'], true);
$listDisplay[] = ['value' => 'getVisaWorkflow', 'cssClasses' => ['align_leftData'], 'icon' => 'fa-list-ol'];
$listDisplay[] = ['value' => 'getSignatories', 'cssClasses' => ['align_leftData'], 'icon' => 'fa-list-ol'];
$listDisplay[] = ['value' => 'getParallelOpinionsNumber', 'cssClasses' => ['align_leftData'], 'icon' => 'fa-list-ol'];
\Basket\models\GroupBasketModel::update([
'set' => ['list_display' => json_encode($listDisplay)],
'where' => ['basket_id = ?', 'group_id = ?'],
'data' => ['MyBasket', 'AGENT']
]);
$userInfo = \User\models\UserModel::getByLogin(['login' => 'bbain', 'select' => ['id']]);
\Entity\models\ListInstanceModel::create([
'res_id' => $GLOBALS['resources'][0],
'sequence' => 0,
'item_id' => $userInfo['id'],
'item_type' => 'user_id',
'item_mode' => 'dest',
'added_by_user' => $GLOBALS['id'],
'viewed' => 0,
'difflist_type' => 'VISA_CIRCUIT',
'requested_signature' => true,
]);
$GLOBALS['login'] = 'bbain';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
$myBasket = \Basket\models\BasketModel::getByBasketId(['basketId' => 'MyBasket', 'select' => ['id']]);
$myBasket = \Basket\models\BasketModel::getByBasketId(['basketId' => 'MyBasket', 'select' => ['id', 'basket_id']]);
$resListController = new \Resource\controllers\ResourceListController();
......@@ -181,6 +210,31 @@ class ResourceListControllerTest extends TestCase
$this->assertIsArray($responseBody->statuses);
$this->assertIsArray($responseBody->entitiesChildren);
$aArgs = [
'priorities' => 'poiuytre1379nbvc,poiuytre1391nbvc',
'categories' => 'incoming',
'entitiesChildren' => 'PJS',
'doctypes' => 102,
'entities' => 'PJS',
'folders' => '1'
];
$fullRequest = $request->withQueryParams($aArgs);
$response = $resListController->getFilters($fullRequest, new \Slim\Http\Response(), ['userId' => 19, 'groupId' => 2, 'basketId' => $myBasket['id']]);
$responseBody = json_decode((string)$response->getBody());
$this->assertIsArray($responseBody->entities);
$this->assertIsArray($responseBody->priorities);
$this->assertIsArray($responseBody->categories);
$this->assertIsArray($responseBody->statuses);
$this->assertIsArray($responseBody->entitiesChildren);
// Errors
$response = $resListController->getFilters($request, new \Slim\Http\Response(), ['userId' => 19, 'groupId' => 2, 'basketId' => $myBasket['id'] * 1000]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Group or basket does not exist', $responseBody['errors']);
$GLOBALS['login'] = 'superadmin';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
......@@ -199,11 +253,201 @@ class ResourceListControllerTest extends TestCase
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $resListController->getActions($request, new \Slim\Http\Response(), ['userId' => 19, 'groupId' => 2, 'basketId' => $myBasket['id']]);
$queryParams = ['resId' => $GLOBALS['resources'][0]];
$fullRequest = $request->withQueryParams($queryParams);
$response = $resListController->getActions($fullRequest, new \Slim\Http\Response(), ['userId' => 19, 'groupId' => 2, 'basketId' => $myBasket['id']]);
$this->assertSame(200, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertIsArray($responseBody['actions']);
$this->assertNotNull($responseBody['actions']);
// Errors
$response = $resListController->getActions($request, new \Slim\Http\Response(), ['userId' => 19, 'groupId' => 2, 'basketId' => $myBasket['id'] * 1000]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Group or basket does not exist', $responseBody['errors']);
$GLOBALS['login'] = 'superadmin';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
}
public function testSetAction()
{
$GLOBALS['login'] = 'bbain';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
$resListController = new \Resource\controllers\ResourceListController();
$myBasket = \Basket\models\BasketModel::getByBasketId(['basketId' => 'MyBasket', 'select' => ['id']]);
// GET
// ERROR
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $resListController->setAction($request, new \Slim\Http\Response(), []);
$this->assertSame(400, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Data resources is empty or not an array', $responseBody['errors']);
$body = [
'resources' => [1]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->setAction($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 10000 ]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Group or basket does not exist', $responseBody->errors);
$this->assertIsArray($responseBody->actions);
$this->assertNotNull($responseBody->actions);
$body = [
'resources' => [1]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->setAction($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 1 ]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Group is not linked to this user', $responseBody->errors);
$body = [
'resources' => [1]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->setAction($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 2, 'actionId' => 2]);
$this->assertSame(400, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Action is not linked to this group basket', $responseBody->errors);
$body = [
'resources' => [1]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->setAction($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 2, 'actionId' => 400]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Resources out of perimeter', $responseBody->errors);
// Success
\Resource\models\ResModel::update([
'set' => ['status' => 'NEW'],
'where' => ['res_id = ?'],
'data' => [$GLOBALS['resources'][2]]
]);
$body = [
'resources' => [$GLOBALS['resources'][2]]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->setAction($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 2, 'actionId' => '20']);
$this->assertSame(204, $response->getStatusCode());
\Resource\models\ResModel::update([
'set' => ['status' => 'NEW'],
'where' => ['res_id = ?'],
'data' => [$GLOBALS['resources'][2]]
]);
$GLOBALS['login'] = 'superadmin';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
}
public function testLock()
{
$GLOBALS['login'] = 'bbain';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
$resListController = new \Resource\controllers\ResourceListController();
$myBasket = \Basket\models\BasketModel::getByBasketId(['basketId' => 'MyBasket', 'select' => ['id']]);
// GET
// ERROR
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $resListController->lock($request, new \Slim\Http\Response(), []);
$this->assertSame(400, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Data resources is empty or not an array', $responseBody['errors']);
$body = [
'resources' => [1]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->lock($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 10000 ]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Group or basket does not exist', $responseBody['errors']);
$response = $resListController->lock($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 2 ]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Resources out of perimeter', $responseBody['errors']);
// Success
$body = [
'resources' => [$GLOBALS['resources'][1]]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->lock($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 2 ]);
$this->assertSame(200, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame(0, $responseBody['countLockedResources']);
$this->assertIsArray($responseBody['lockers']);
$this->assertEmpty($responseBody['lockers']);
$this->assertIsArray($responseBody['resourcesToProcess']);
$this->assertNotEmpty($responseBody['resourcesToProcess']);
$this->assertSame($GLOBALS['resources'][1], $responseBody['resourcesToProcess'][0]);
$GLOBALS['login'] = 'superadmin';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
}
public function testUnLock()
{
$GLOBALS['login'] = 'bbain';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
$GLOBALS['id'] = $userInfo['id'];
$resListController = new \Resource\controllers\ResourceListController();
$myBasket = \Basket\models\BasketModel::getByBasketId(['basketId' => 'MyBasket', 'select' => ['id']]);
// GET
// ERROR
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $resListController->unlock($request, new \Slim\Http\Response(), []);
$this->assertSame(400, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Data resources is empty or not an array', $responseBody['errors']);
$body = [
'resources' => [1]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->unlock($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 10000 ]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Group or basket does not exist', $responseBody['errors']);
$response = $resListController->unlock($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 2 ]);
$this->assertSame(403, $response->getStatusCode());
$responseBody = json_decode((string)$response->getBody(), true);
$this->assertSame('Resources out of perimeter', $responseBody['errors']);
// Success
$body = [
'resources' => [$GLOBALS['resources'][1]]
];
$fullRequest = \httpRequestCustom::addContentInBody($body, $request);
$response = $resListController->unlock($fullRequest, new \Slim\Http\Response(), ['userId' => $GLOBALS['id'], 'basketId' => $myBasket['id'], 'groupId' => 2 ]);
$this->assertSame(204, $response->getStatusCode());
$GLOBALS['login'] = 'superadmin';
$userInfo = \User\models\UserModel::getByLogin(['login' => $GLOBALS['login'], 'select' => ['id']]);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment