Skip to content
Snippets Groups Projects
Verified Commit bc5f332e authored by Damien's avatar Damien
Browse files

FEAT #75 List templates unit test

parent 1c1ae1ac
No related branches found
No related tags found
No related merge requests found
......@@ -88,15 +88,17 @@ class GroupController
}
$data = $request->getParams();
$check = Validator::stringType()->notEmpty()->validate($data['description']);
$check = $check && Validator::stringType()->notEmpty()->validate($data['security']['where_clause']);
$check = $check && Validator::stringType()->notEmpty()->validate($data['security']['maarch_comment']);
if (!$check) {
return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
}
if (!PreparedClauseController::isClauseValid(['clause' => $data['security']['where_clause'], 'userId' => $GLOBALS['userId']])) {
return $response->withStatus(400)->withJson(['errors' => _INVALID_CLAUSE]);
}
GroupModel::update(['id' => $aArgs['id'], 'description' => $data['description'], 'clause' => $data['security']['where_clause'], 'comment' => $data['security']['maarch_comment']]);
return $response->withJson(['success' => 'success']);
......
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
*
*/
use PHPUnit\Framework\TestCase;
class ListTemplateControllerTest extends TestCase
{
private static $id = null;
public function testCreate()
{
$listTemplateController = new \Entity\controllers\ListTemplateController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'object_type' => 'VISA_CIRCUIT',
'title' => 'TEST-LISTTEMPLATE123-TITLE',
'description' => 'TEST LISTTEMPLATE123 DESCRIPTION',
'items' => [
[
'sequence' => 0,
'item_id' => 'bbain',
'item_type' => 'user_id',
'item_mode' => 'visa'
],
[
'sequence' => 1,
'item_id' => 'ssissoko',
'item_type' => 'user_id',
'item_mode' => 'visa'
],
[
'sequence' => 0,
'item_id' => 'bboule',
'item_type' => 'user_id',
'item_mode' => 'sign'
]
],
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $listTemplateController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('success', $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $listTemplateController->get($request, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
foreach ($responseBody->listTemplates as $listTemplate) {
if ($listTemplate->title == 'TEST-LISTTEMPLATE123-TITLE') {
self::$id = $listTemplate->id;
$this->assertSame('VISA_CIRCUIT', $listTemplate->object_type);
$this->assertSame('VISA_CIRCUIT_', substr($listTemplate->object_id, 0, 13));
$this->assertSame('TEST LISTTEMPLATE123 DESCRIPTION', $listTemplate->description);
}
}
if (empty(self::$id)) {
$this->assertSame('Error', 'Creation failed');
}
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $listTemplateController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('VISA_CIRCUIT', $responseBody->listTemplate[0]->object_type);
$this->assertSame('TEST-LISTTEMPLATE123-TITLE', $responseBody->listTemplate[0]->title);
$this->assertSame('TEST LISTTEMPLATE123 DESCRIPTION', $responseBody->listTemplate[0]->description);
$this->assertSame(0, $responseBody->listTemplate[0]->sequence);
$this->assertSame('bbain', $responseBody->listTemplate[0]->item_id);
$this->assertSame('user_id', $responseBody->listTemplate[0]->item_type);
$this->assertSame('visa', $responseBody->listTemplate[0]->item_mode);
$this->assertSame('Y', $responseBody->listTemplate[0]->visible);
$this->assertSame('VISA_CIRCUIT', $responseBody->listTemplate[1]->object_type);
$this->assertSame('TEST-LISTTEMPLATE123-TITLE', $responseBody->listTemplate[1]->title);
$this->assertSame('TEST LISTTEMPLATE123 DESCRIPTION', $responseBody->listTemplate[1]->description);
$this->assertSame(1, $responseBody->listTemplate[1]->sequence);
$this->assertSame('ssissoko', $responseBody->listTemplate[1]->item_id);
$this->assertSame('user_id', $responseBody->listTemplate[1]->item_type);
$this->assertSame('visa', $responseBody->listTemplate[1]->item_mode);
$this->assertSame('Y', $responseBody->listTemplate[1]->visible);
$this->assertSame('VISA_CIRCUIT', $responseBody->listTemplate[2]->object_type);
$this->assertSame('TEST-LISTTEMPLATE123-TITLE', $responseBody->listTemplate[2]->title);
$this->assertSame('TEST LISTTEMPLATE123 DESCRIPTION', $responseBody->listTemplate[2]->description);
$this->assertSame(0, $responseBody->listTemplate[2]->sequence);
$this->assertSame('bboule', $responseBody->listTemplate[2]->item_id);
$this->assertSame('user_id', $responseBody->listTemplate[2]->item_type);
$this->assertSame('sign', $responseBody->listTemplate[2]->item_mode);
$this->assertSame('Y', $responseBody->listTemplate[2]->visible);
}
public function testUpdate()
{
$listTemplateController = new \Entity\controllers\ListTemplateController();
// UPDATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'title' => 'TEST-LISTTEMPLATE123-TITLE-UPDATED',
'description' => 'TEST LISTTEMPLATE123 DESCRIPTION UPDATED',
'items' => [
[
'sequence' => 0,
'item_id' => 'kkaar',
'item_type' => 'user_id',
'item_mode' => 'visa'
],
[
'sequence' => 0,
'item_id' => 'ppetit',
'item_type' => 'user_id',
'item_mode' => 'sign'
]
],
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $listTemplateController->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('success', $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $listTemplateController->get($request, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
self::$id = null;
foreach ($responseBody->listTemplates as $listTemplate) {
if ($listTemplate->title == 'TEST-LISTTEMPLATE123-TITLE-UPDATED') {
self::$id = $listTemplate->id;
$this->assertSame('VISA_CIRCUIT', $listTemplate->object_type);
$this->assertSame('VISA_CIRCUIT_', substr($listTemplate->object_id, 0, 13));
$this->assertSame('TEST LISTTEMPLATE123 DESCRIPTION UPDATED', $listTemplate->description);
}
}
if (empty(self::$id)) {
$this->assertSame('Error', 'Update failed');
}
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $listTemplateController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('VISA_CIRCUIT', $responseBody->listTemplate[0]->object_type);
$this->assertSame('TEST-LISTTEMPLATE123-TITLE-UPDATED', $responseBody->listTemplate[0]->title);
$this->assertSame('TEST LISTTEMPLATE123 DESCRIPTION UPDATED', $responseBody->listTemplate[0]->description);
$this->assertSame(0, $responseBody->listTemplate[0]->sequence);
$this->assertSame('kkaar', $responseBody->listTemplate[0]->item_id);
$this->assertSame('user_id', $responseBody->listTemplate[0]->item_type);
$this->assertSame('visa', $responseBody->listTemplate[0]->item_mode);
$this->assertSame('Y', $responseBody->listTemplate[0]->visible);
$this->assertSame('VISA_CIRCUIT', $responseBody->listTemplate[1]->object_type);
$this->assertSame('TEST-LISTTEMPLATE123-TITLE-UPDATED', $responseBody->listTemplate[1]->title);
$this->assertSame('TEST LISTTEMPLATE123 DESCRIPTION UPDATED', $responseBody->listTemplate[1]->description);
$this->assertSame(0, $responseBody->listTemplate[1]->sequence);
$this->assertSame('ppetit', $responseBody->listTemplate[1]->item_id);
$this->assertSame('user_id', $responseBody->listTemplate[1]->item_type);
$this->assertSame('sign', $responseBody->listTemplate[1]->item_mode);
$this->assertSame('Y', $responseBody->listTemplate[1]->visible);
$this->assertSame(null, $responseBody->listTemplate[2]);
}
public function testDelete()
{
$listTemplateController = new \Entity\controllers\ListTemplateController();
// DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $listTemplateController->delete($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('success', $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $listTemplateController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('List template not found', $responseBody->errors);
}
}
......@@ -5,6 +5,8 @@
<!--directory>core/Test</directory-->
<file>core/Test/ActionControllerTest.php</file>
<file>core/Test/BasketControllerTest.php</file>
<file>core/Test/EntityControllerTest.php</file>
<file>core/Test/ListTemplateControllerTest.php</file>
<file>core/Test/DoctypeControllerTest.php</file>
<file>core/Test/NotificationControllerTest.php</file>
<file>core/Test/NotificationScheduleControllerTest.php</file>
......
......@@ -84,7 +84,7 @@ class ListTemplateController
$data['object_id'] = $data['object_type'] . '_' . DatabaseModel::uniqueId();
}
$checkItems = ListTemplateController::checkItems(['item' => $data['items']]);
$checkItems = ListTemplateController::checkItems(['items' => $data['items']]);
if (!empty($checkItems['errors'])) {
return $response->withStatus(400)->withJson(['errors' => $checkItems['errors']]);
}
......@@ -141,7 +141,7 @@ class ListTemplateController
}
}
$checkItems = ListTemplateController::checkItems(['item' => $data['items']]);
$checkItems = ListTemplateController::checkItems(['items' => $data['items']]);
if (!empty($checkItems['errors'])) {
return $response->withStatus(400)->withJson(['errors' => $checkItems['errors']]);
}
......@@ -226,9 +226,6 @@ class ListTemplateController
if (empty($item['item_mode'])) {
return ['errors' => 'Item_mode is empty'];
}
if (is_numeric($item['sequence'])) {
return ['errors' => 'Sequence is not numeric'];
}
}
return ['success' => 'success'];
......
......@@ -61,7 +61,7 @@ class ListTemplateModelAbstract
public static function create(array $aArgs)
{
ValidatorModel::notEmpty($aArgs, ['object_id', 'object_type', 'sequence', 'item_id', 'item_type', 'item_mode']);
ValidatorModel::notEmpty($aArgs, ['object_id', 'object_type', 'item_id', 'item_type', 'item_mode']);
ValidatorModel::stringType($aArgs, ['object_id', 'object_type', 'item_id', 'item_type', 'title', 'description']);
ValidatorModel::intVal($aArgs, ['sequence']);
......
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