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

FEAT Add priority test + remove password check for a database connection

parent 6b93fa04
No related branches found
No related tags found
No related merge requests found
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
"require": { "require": {
"slim/slim": "^3", "slim/slim": "^3",
"respect/validation": "^1.1", "respect/validation": "^1.1",
"guzzlehttp/guzzle": "^6.2",
"php-http/curl-client": "^1.7", "php-http/curl-client": "^1.7",
"m4tthumphrey/php-gitlab-api": "dev-master" "m4tthumphrey/php-gitlab-api": "dev-master"
} }
......
...@@ -70,13 +70,13 @@ class PriorityController ...@@ -70,13 +70,13 @@ class PriorityController
$check = Validator::stringType()->notEmpty()->validate($data['label']); $check = Validator::stringType()->notEmpty()->validate($data['label']);
$check = $check && Validator::stringType()->notEmpty()->validate($data['color']); $check = $check && Validator::stringType()->notEmpty()->validate($data['color']);
$check = $check && Validator::intVal()->notEmpty()->validate($data['delays']); $check = $check && Validator::intVal()->notEmpty()->validate($data['delays']);
$check = $check && Validator::boolType()->notEmpty()->validate($data['working_days']); $check = $check && Validator::boolType()->validate($data['working_days']);
if (!$check) { if (!$check) {
return $response->withStatus(400)->withJson(['errors' => 'Bad Request']); return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
} }
$data['id'] = $aArgs['id']; $data['id'] = $aArgs['id'];
$data['working_days'] = $data['working_days'] ? 'true' : 'false'; $data['working_days'] = empty($data['working_days']) ? 'false' : 'true';
PriorityModel::update($data); PriorityModel::update($data);
......
...@@ -61,11 +61,11 @@ class DatabasePDO ...@@ -61,11 +61,11 @@ class DatabasePDO
} }
ValidatorModel::notEmpty( ValidatorModel::notEmpty(
['driver' => $formattedDriver, 'server' => $server, 'port' => $port, 'name' => $name, 'user' => $user, 'password' => $password], ['driver' => $formattedDriver, 'server' => $server, 'port' => $port, 'name' => $name, 'user' => $user],
['driver', 'server', 'port', 'name', 'user', 'password'] ['driver', 'server', 'port', 'name', 'user', 'password']
); );
ValidatorModel::stringType( ValidatorModel::stringType(
['driver' => $formattedDriver, 'server' => $server, 'name' => $name, 'user' => $user, 'password' => $password], ['driver' => $formattedDriver, 'server' => $server, 'name' => $name, 'user' => $user],
['driver', 'server', 'name', 'user', 'password'] ['driver', 'server', 'name', 'user', 'password']
); );
ValidatorModel::intVal(['port' => $port], ['port']); ValidatorModel::intVal(['port' => $port], ['port']);
......
<?php
namespace MaarchTest;
require_once __DIR__.'/define.php';
require_once 'apps/maarch_entreprise/services/Table.php';
class PrioritiesControllerTest extends \PHPUnit_Framework_TestCase
{
public function testCreate()
{
$environment = \Slim\Http\Environment::mock([
'REQUEST_METHOD' => 'POST'
]);
$priorities = new \Core\Controllers\PrioritiesController();
$request = \Slim\Http\Request::createFromEnvironment($environment);
$table = new \Apps_Table_Service();
$aArgs = [
'color_priority' => '#ffffff',
'label_priority' => 'priorityCreated',
'delays' => "2",
'working_days' =>'Y'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
$response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);
$tabPriorities = $table->select([
'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
'table' => ['priorities'],
'orderby' => 'id'
]);
end($tabPriorities);
$key =key($tabPriorities);
$id = $tabPriorities[$key]['id'];
$compare = '[{"id":'.$id.',"label_priority":"priorityCreated","color_priority":"#ffffff","working_days":"Y","delays":"2"}]';
$this->assertSame($compare,(string)$response->getBody());
$aArgs = [
'color_priority' => '',
'label_priority' => '',
'delays' => '',
'working_days' =>''
];
$compare = '{"errors":["Valeur label vide","Aucune Couleur assign\u00e9e","Delai vide","jours vide"]}';
$fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
$response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);
$this->assertSame($compare,(string)$response->getBody());
// Delays non numérique
$aArgs = [
'color_priority' => '#ffff',
'label_priority' => 'ErrorColor',
'delays' => 'abc',
'working_days' =>'A'
];
$compare = '{"errors":["Format couleur invalide","Valeur working_days invalide","Valeur delays non num\u00e9rique"]}';
$fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
$response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);
$this->assertSame($compare,(string)$response->getBody());
$aArgs = [
'color_priority' => '#ffff',
'label_priority' => 'ErrorColor',
'delays' => '-1',
'working_days' =>'A'
];
$compare = '{"errors":["Format couleur invalide","Valeur working_days invalide","Valeur delays non num\u00e9rique","Valeur n\u00e9gative"]}';
$fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
$response = $priorities->create($fullRequest, new \Slim\Http\Response(), $aArgs);
$this->assertSame($compare,(string)$response->getBody());
}
public function testGetList(){
$priorities = new \Core\Controllers\PrioritiesController();
$environment = \Slim\Http\Environment::mock([
'REQUEST_METHOD' => 'GET'
]);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $priorities->getList($request, new \Slim\Http\Response());
$this->assertNotNull((string)$response->getBody());
}
public function testGetById(){
$priorities = new \Core\Controllers\PrioritiesController();
$environment = \Slim\Http\Environment::mock([
'REQUEST_METHOD' => 'GET'
]);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'id' =>'1'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $priorities->getById($fullRequest, new \Slim\Http\Response(), $aArgs);
$this->assertNotNull((string)$response->getBody());
$compare = '[{"id":1,"label_priority":"priorityCreated","color_priority":"#ffffff","working_days":"Y","delays":"12"}]';
$this->assertSame($compare,(string)$response->getBody());
$aArgs = [
'id' => 187
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $priorities->getById($fullRequest, new \Slim\Http\Response(), $aArgs);
$this->assertNotNull((string)$response->getBody());
$compare = '{"errors":"Aucune priorit\u00e9 trouv\u00e9e"}';
$this->assertSame($compare,(string)$response->getBody());
/*$query = 'id=0';
$environment = \Slim\Http\Environment::mock([
'REQUEST_METHOD' => 'GET',
'QUERY_STRING' =>$query
]);
$response = $priorities->getById(\Slim\Http\Request::createFromEnvironment($environment), new \Slim\Http\Response(), ['id' => 0]);
$this->assertNotNull((string)$response->getBody());
$compare = '[{"id":1,"label_priority":"labelTest","color_priority":"#ffffff","working_days":"Y","delays":"12"}]';
$this->assertSame($compare,(string)$response->getBody());
*/
}
public function testUpdate()
{
//TEST TOUT OK
$environment = \Slim\Http\Environment::mock([
'REQUEST_METHOD' => 'PUT'
]);
$priorities = new \Core\Controllers\PrioritiesController();
$request = \Slim\Http\Request::createFromEnvironment($environment);
$table = new \Apps_Table_Service();
$tabPriorities = $table->select([
'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
'table' => ['priorities'],
'orderby' => 'id'
]);
end($tabPriorities);
$key =key($tabPriorities);
$id = $tabPriorities[$key]['id'];
//TEST MAUVAIS FORMAT DE COULEUR
$aArgs = [
'id' => $id,
'color_priority' => '#ffffff', //Mauvais format de couleurs
'label_priority' => 'labelTestUpdated',
'delays' => "15",
'working_days' =>'Y'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
$response = $priorities->update($fullRequest, new \Slim\Http\Response(), $aArgs);
$compare = '[{"id":'.$id.',"label_priority":"labelTestUpdated","color_priority":"#ffffff","working_days":"Y","delays":"15"}]';
$this->assertSame($compare,(string)$response->getBody());
$aArgs = [
'id' => $id,
'color_priority' => '#ffff',
'label_priority' => 'labelTestUpdated',
'delays' => "15",
'working_days' =>'Y'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
$response = $priorities->update($fullRequest, new \Slim\Http\Response(), $aArgs);
$compare = '{"errors":["Format couleur invalide"]}';
$this->assertSame($compare,(string)$response->getBody());
//TEST ID Non existant
$aArgs = [
'id' => '187',
'color_priority' => '#ffffff', //Mauvais format de couleurs
'label_priority' => 'labelTestUpdated',
'delays' => "15",
'working_days' =>'Y'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs,$request);
$response = $priorities->update($fullRequest, new \Slim\Http\Response(), $aArgs);
$compare = '{"errors":["Cette priorit\u00e9 n\'existe pas"]}';
$this->assertSame($compare,(string)$response->getBody());
}
public function testDelete(){
$table = new \Apps_Table_Service();
$tabPriorities = $table->select([
'select' => empty($aArgs['']) ? ['*'] : $aArgs['select'],
'table' => ['priorities'],
'orderby' => 'id'
]);
end($tabPriorities);
$key =key($tabPriorities);
$id = $tabPriorities[$key]['id'];
$query = 'id='.$id;
$environment = \Slim\Http\Environment::mock([
'REQUEST_METHOD' => 'DELETE',
'QUERY_STRING' => $query,
]);
$priorities = new \Core\Controllers\PrioritiesController();
$response = $priorities->delete(\Slim\Http\Request::createFromEnvironment($environment), new \Slim\Http\Response(), ['id' => $id]);
$compare = 'true';
$this->assertSame($compare,(string)$response->getBody());
}
}
?>
\ No newline at end of file
<?php
namespace MaarchTest;
use PHPUnit\Framework\TestCase;
class PriorityControllerTest extends TestCase
{
private static $id = null;
public function testCreate()
{
$priorityController = new \Core\Controllers\PriorityController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'label' => 'TEST-OVER-URGENT',
'color' => '#ffffff',
'working_days' => true,
'delays' => '2'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $priorityController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
self::$id = $responseBody->priority;
$this->assertInternalType('string', self::$id);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $priorityController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(self::$id, $responseBody->priority->id);
$this->assertSame('TEST-OVER-URGENT', $responseBody->priority->label);
$this->assertSame('#ffffff', $responseBody->priority->color);
$this->assertSame(true, $responseBody->priority->working_days);
$this->assertSame(2, $responseBody->priority->delays);
}
public function testGet()
{
$priorityController = new \Core\Controllers\PriorityController();
// GET
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $priorityController->get($request, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertInternalType('array', $responseBody->priorities);
$this->assertNotNull($responseBody->priorities);
}
public function testUpdate()
{
$priorityController = new \Core\Controllers\PriorityController();
// UPDATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'label' => 'TEST-OVER-URGENT-UPDATED',
'color' => '#f2f2f2',
'working_days' => false,
'delays' => '4'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $priorityController->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(_UPDATED_PRIORITY, $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $priorityController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(self::$id, $responseBody->priority->id);
$this->assertSame('TEST-OVER-URGENT-UPDATED', $responseBody->priority->label);
$this->assertSame('#f2f2f2', $responseBody->priority->color);
$this->assertSame(false, $responseBody->priority->working_days);
$this->assertSame(4, $responseBody->priority->delays);
}
public function testDelete()
{
$priorityController = new \Core\Controllers\PriorityController();
// DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $priorityController->delete($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(_DELETED_PRIORITY, $responseBody->success);
// READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $priorityController->getById($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Priority not found', $responseBody->errors);
}
}
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
namespace MaarchTest; namespace MaarchTest;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
//require_once __DIR__.'/define.php';
class StatusControllerTest extends TestCase class StatusControllerTest extends TestCase
{ {
......
...@@ -8,14 +8,16 @@ ...@@ -8,14 +8,16 @@
*/ */
namespace MaarchTest; namespace MaarchTest;
use PHPUnit\Framework\TestCase;
use Core\Models\DatabaseModel; use Core\Models\DatabaseModel;
require_once __DIR__.'/define.php'; class UserControllerTest extends TestCase
class UserControllerTest extends \PHPUnit_Framework_TestCase
{ {
public function testCRUD() private static $id = null;
public function testCreate()
{ {
$userController = new \Core\Controllers\UserController(); $userController = new \Core\Controllers\UserController();
...@@ -33,16 +35,17 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase ...@@ -33,16 +35,17 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
$response = $userController->create($fullRequest, new \Slim\Http\Response()); $response = $userController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$id = $responseBody->user->id; self::$id = $responseBody->user->id;
$this->assertInternalType('int', $id);
$this->assertInternalType('int', self::$id);
// READ // READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment); $request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]); $response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$this->assertSame($id, $responseBody->id); $this->assertSame(self::$id, $responseBody->id);
$this->assertSame('TEST-CKENT', $responseBody->user_id); $this->assertSame('TEST-CKENT', $responseBody->user_id);
$this->assertSame('TEST-CLARK', $responseBody->firstname); $this->assertSame('TEST-CLARK', $responseBody->firstname);
$this->assertSame('TEST-KENT', $responseBody->lastname); $this->assertSame('TEST-KENT', $responseBody->lastname);
...@@ -52,6 +55,11 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase ...@@ -52,6 +55,11 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
$this->assertSame(null, $responseBody->mail); $this->assertSame(null, $responseBody->mail);
$this->assertSame(null, $responseBody->initials); $this->assertSame(null, $responseBody->initials);
$this->assertSame(null, $responseBody->thumbprint); $this->assertSame(null, $responseBody->thumbprint);
}
public function testUpdate()
{
$userController = new \Core\Controllers\UserController();
// UPDATE // UPDATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']); $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
...@@ -67,7 +75,7 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase ...@@ -67,7 +75,7 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
]; ];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request); $fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' => $id]); $response = $userController->update($fullRequest, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$this->assertSame(_USER_UPDATED, $responseBody->success); $this->assertSame(_USER_UPDATED, $responseBody->success);
...@@ -75,10 +83,10 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase ...@@ -75,10 +83,10 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
// READ // READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment); $request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]); $response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$this->assertSame($id, $responseBody->id); $this->assertSame(self::$id, $responseBody->id);
$this->assertSame('TEST-CKENT', $responseBody->user_id); $this->assertSame('TEST-CKENT', $responseBody->user_id);
$this->assertSame('TEST-CLARK2', $responseBody->firstname); $this->assertSame('TEST-CLARK2', $responseBody->firstname);
$this->assertSame('TEST-KENT2', $responseBody->lastname); $this->assertSame('TEST-KENT2', $responseBody->lastname);
...@@ -88,22 +96,27 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase ...@@ -88,22 +96,27 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
$this->assertSame('ck@dailyP.com', $responseBody->mail); $this->assertSame('ck@dailyP.com', $responseBody->mail);
$this->assertSame('CK', $responseBody->initials); $this->assertSame('CK', $responseBody->initials);
$this->assertSame(null, $responseBody->thumbprint); $this->assertSame(null, $responseBody->thumbprint);
}
public function testDelete()
{
$userController = new \Core\Controllers\UserController();
// DELETE // DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']); $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment); $request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->delete($request, new \Slim\Http\Response(), ['id' => $id]); $response = $userController->delete($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$this->assertSame(_DELETED_USER, $responseBody->success); $this->assertSame(_DELETED_USER, $responseBody->success);
// READ // READ
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
$request = \Slim\Http\Request::createFromEnvironment($environment); $request = \Slim\Http\Request::createFromEnvironment($environment);
$response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => $id]); $response = $userController->getUserForAdministration($request, new \Slim\Http\Response(), ['id' => self::$id]);
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$this->assertSame($id, $responseBody->id); $this->assertSame(self::$id, $responseBody->id);
$this->assertSame('TEST-CKENT', $responseBody->user_id); $this->assertSame('TEST-CKENT', $responseBody->user_id);
$this->assertSame('TEST-CLARK2', $responseBody->firstname); $this->assertSame('TEST-CLARK2', $responseBody->firstname);
$this->assertSame('TEST-KENT2', $responseBody->lastname); $this->assertSame('TEST-KENT2', $responseBody->lastname);
...@@ -118,7 +131,8 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase ...@@ -118,7 +131,8 @@ class UserControllerTest extends \PHPUnit_Framework_TestCase
DatabaseModel::delete([ DatabaseModel::delete([
'table' => 'users', 'table' => 'users',
'where' => ['id = ?'], 'where' => ['id = ?'],
'data' => [$id] 'data' => [self::$id]
]); ]);
} }
} }
...@@ -3,7 +3,9 @@ ...@@ -3,7 +3,9 @@
<testsuites> <testsuites>
<testsuite name="Maarch Core Test Suite"> <testsuite name="Maarch Core Test Suite">
<!--directory>core/Test</directory--> <!--directory>core/Test</directory-->
<file>core/Test/UserControllerTest.php</file>
<file>core/Test/StatusControllerTest.php</file> <file>core/Test/StatusControllerTest.php</file>
<file>core/Test/PriorityControllerTest.php</file>
</testsuite> </testsuite>
</testsuites> </testsuites>
<filter> <filter>
......
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