Skip to content
Snippets Groups Projects
Commit a238adc6 authored by Florian Azizian's avatar Florian Azizian
Browse files

FEAT #76 administration doctype + TU

parent 758f6afb
No related branches found
No related tags found
No related merge requests found
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
*/ */
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use SrcCore\models\DatabaseModel;
class FirstLevelControllerTest extends TestCase class FirstLevelControllerTest extends TestCase
{ {
...@@ -26,10 +27,6 @@ class FirstLevelControllerTest extends TestCase ...@@ -26,10 +27,6 @@ class FirstLevelControllerTest extends TestCase
$response = $firstLevelController->getTree($request, new \Slim\Http\Response()); $response = $firstLevelController->getTree($request, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
self::$firstLevelId = $responseBody->structure[0]->doctypes_first_level_id;
self::$secondLevelId = $responseBody->structure[0]->secondeLevels[0]->doctypes_second_level_id;
self::$doctypeId = $responseBody->structure[0]->secondeLevels[0]->doctypes[0]->type_id;
$this->assertNotNull($responseBody->structure); $this->assertNotNull($responseBody->structure);
$this->assertNotNull($responseBody->structure[0]->doctypes_first_level_id); $this->assertNotNull($responseBody->structure[0]->doctypes_first_level_id);
$this->assertInternalType('int', $responseBody->structure[0]->doctypes_first_level_id); $this->assertInternalType('int', $responseBody->structure[0]->doctypes_first_level_id);
...@@ -63,7 +60,7 @@ class FirstLevelControllerTest extends TestCase ...@@ -63,7 +60,7 @@ class FirstLevelControllerTest extends TestCase
$this->assertNotNull($responseBody->firstLevel[0]->doctypes_first_level_label); $this->assertNotNull($responseBody->firstLevel[0]->doctypes_first_level_label);
} }
public function testCreate() public function testCreateFirstLevel()
{ {
$firstLevelController = new \Doctype\controllers\FirstLevelController(); $firstLevelController = new \Doctype\controllers\FirstLevelController();
...@@ -105,7 +102,50 @@ class FirstLevelControllerTest extends TestCase ...@@ -105,7 +102,50 @@ class FirstLevelControllerTest extends TestCase
$this->assertSame('Invalid foldertype_id', $responseBody->errors[1]); $this->assertSame('Invalid foldertype_id', $responseBody->errors[1]);
} }
public function testUpdate() public function testCreateSecondLevel()
{
$secondLevelController = new \Doctype\controllers\SecondLevelController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'doctypes_second_level_label' => 'testTUsecondlevel',
'doctypes_first_level_id' => self::$firstLevelId,
'css_style' => '#99999',
'enabled' => 'Y',
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $secondLevelController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
self::$secondLevelId = $responseBody->secondLevel->doctypes_second_level_id;
$this->assertInternalType('int', self::$secondLevelId);
$this->assertSame('testTUsecondlevel', $responseBody->secondLevel->doctypes_second_level_label);
$this->assertSame(self::$firstLevelId, $responseBody->secondLevel->doctypes_first_level_id);
$this->assertSame('#99999', $responseBody->secondLevel->css_style);
$this->assertSame('Y', $responseBody->secondLevel->enabled);
// CREATE FAIL
$aArgs = [
'doctypes_second_level_label' => '',
'doctypes_first_level_id' => '',
'css_style' => '#7777',
'enabled' => 'gaz',
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $secondLevelController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Invalid doctypes_second_level_label', $responseBody->errors[0]);
$this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[1]);
}
public function testUpdateFirstLevel()
{ {
$firstLevelController = new \Doctype\controllers\FirstLevelController(); $firstLevelController = new \Doctype\controllers\FirstLevelController();
...@@ -148,6 +188,50 @@ class FirstLevelControllerTest extends TestCase ...@@ -148,6 +188,50 @@ class FirstLevelControllerTest extends TestCase
} }
public function testUpdateSecondLevel()
{
$secondLevelController = new \Doctype\controllers\SecondLevelController();
// UPDATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'doctypes_second_level_label' => 'testTUsecondlevelUPDATE',
'doctypes_first_level_id' => self::$firstLevelId,
'css_style' => '#7777',
'enabled' => 'Y',
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $secondLevelController->update($fullRequest, new \Slim\Http\Response(), ["id" => self::$secondLevelId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(self::$secondLevelId, $responseBody->secondLevel->doctypes_second_level_id);
$this->assertSame('testTUsecondlevelUPDATE', $responseBody->secondLevel->doctypes_second_level_label);
$this->assertSame(self::$firstLevelId, $responseBody->secondLevel->doctypes_first_level_id);
$this->assertSame('#7777', $responseBody->secondLevel->css_style);
$this->assertSame('Y', $responseBody->secondLevel->enabled);
// UPDATE FAIL
$aArgs = [
'doctypes_second_level_label' => '',
'doctypes_first_level_id' => '',
'css_style' => '#7777',
'enabled' => 'gaz',
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $secondLevelController->update($fullRequest, new \Slim\Http\Response(), ["id" => 'gaz']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Id is not a numeric', $responseBody->errors[0]);
$this->assertSame('Id gaz does not exists', $responseBody->errors[1]);
$this->assertSame('Invalid doctypes_second_level_label', $responseBody->errors[2]);
$this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[3]);
}
public function testRead(){ public function testRead(){
// READ FIRST LEVEL // READ FIRST LEVEL
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']); $environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'GET']);
...@@ -176,14 +260,52 @@ class FirstLevelControllerTest extends TestCase ...@@ -176,14 +260,52 @@ class FirstLevelControllerTest extends TestCase
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$this->assertSame(self::$secondLevelId, $responseBody->secondLevel->doctypes_second_level_id); $this->assertSame(self::$secondLevelId, $responseBody->secondLevel->doctypes_second_level_id);
$this->assertNotNull($responseBody->secondLevel->doctypes_second_level_label); $this->assertSame('testTUsecondlevelUPDATE', $responseBody->secondLevel->doctypes_second_level_label);
$this->assertNotNull($responseBody->secondLevel->doctypes_first_level_id); $this->assertSame(self::$firstLevelId, $responseBody->secondLevel->doctypes_first_level_id);
$this->assertNotNull($responseBody->secondLevel->enabled); $this->assertSame(true, $responseBody->secondLevel->enabled);
$this->assertNotNull($responseBody->firstLevel);
// READ SECOND LEVEL FAIL
$response = $secondLevelController->getById($request, new \Slim\Http\Response(), ["id" => 'GAZ']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('wrong format for id', $responseBody->errors);
}
public function testDeleteSecondLevel()
{
$secondLevelController = new \Doctype\controllers\SecondLevelController();
// DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $secondLevelController->delete($fullRequest, new \Slim\Http\Response(), ["id" => self::$secondLevelId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(self::$secondLevelId, $responseBody->secondLevel->doctypes_second_level_id);
$this->assertSame(self::$firstLevelId, $responseBody->secondLevel->doctypes_first_level_id);
$this->assertSame('testTUsecondlevelUPDATE', $responseBody->secondLevel->doctypes_second_level_label);
$this->assertSame('#7777', $responseBody->secondLevel->css_style);
$this->assertSame('N', $responseBody->secondLevel->enabled);
// DELETE FAIL
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $secondLevelController->delete($fullRequest, new \Slim\Http\Response(), ["id" => 'gaz']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Id is not a numeric', $responseBody->errors);
} }
public function testDelete() public function testDeleteFirstLevel()
{ {
$firstLevelController = new \Doctype\controllers\FirstLevelController(); $firstLevelController = new \Doctype\controllers\FirstLevelController();
...@@ -216,4 +338,18 @@ class FirstLevelControllerTest extends TestCase ...@@ -216,4 +338,18 @@ class FirstLevelControllerTest extends TestCase
} }
public function testDeleteSQL()
{
DatabaseModel::delete([
'table' => 'doctypes_first_level',
'where' => ['doctypes_first_level_id = ?'],
'data' => [self::$firstLevelId]
]);
DatabaseModel::delete([
'table' => 'doctypes_second_level',
'where' => ['doctypes_second_level_id = ?'],
'data' => [self::$secondLevelId]
]);
}
} }
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<!--directory>core/Test</directory--> <!--directory>core/Test</directory-->
<file>core/Test/ActionControllerTest.php</file> <file>core/Test/ActionControllerTest.php</file>
<file>core/Test/BasketControllerTest.php</file> <file>core/Test/BasketControllerTest.php</file>
<file>core/Test/DoctypeControllerTest.php</file>
<file>core/Test/NotificationControllerTest.php</file> <file>core/Test/NotificationControllerTest.php</file>
<file>core/Test/NotificationScheduleControllerTest.php</file> <file>core/Test/NotificationScheduleControllerTest.php</file>
<file>core/Test/ParameterControllerTest.php</file> <file>core/Test/ParameterControllerTest.php</file>
...@@ -21,11 +22,10 @@ ...@@ -21,11 +22,10 @@
</testsuites> </testsuites>
<filter> <filter>
<whitelist> <whitelist>
<directory suffix="Test.php">core/Test</directory> <!-- <directory suffix="Test.php">core/Test</directory> -->
<directory suffix=".php">src</directory> <directory suffix=".php">src</directory>
<directory suffix=".php">core/Controllers</directory> <directory suffix=".php">core/Controllers</directory>
<directory suffix=".php">core/Models</directory> <directory suffix=".php">core/Models</directory>
<directory suffix=".php">apps/maarch_entreprise/Models</directory>
<directory suffix=".php">modules/visa/Controllers</directory> <directory suffix=".php">modules/visa/Controllers</directory>
<directory suffix=".php">modules/visa/Models</directory> <directory suffix=".php">modules/visa/Models</directory>
<directory suffix=".php">modules/attachments/Controllers</directory> <directory suffix=".php">modules/attachments/Controllers</directory>
......
...@@ -55,7 +55,7 @@ class SecondLevelModelAbstract ...@@ -55,7 +55,7 @@ class SecondLevelModelAbstract
public static function create(array $aArgs) public static function create(array $aArgs)
{ {
ValidatorModel::notEmpty($aArgs, ['label', 'doctypes_first_level_id']); ValidatorModel::notEmpty($aArgs, ['doctypes_second_level_label', 'doctypes_first_level_id']);
ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']); ValidatorModel::intVal($aArgs, ['doctypes_first_level_id']);
$aArgs['doctypes_second_level_id'] = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_second_level_id_seq']); $aArgs['doctypes_second_level_id'] = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_second_level_id_seq']);
...@@ -79,7 +79,7 @@ class SecondLevelModelAbstract ...@@ -79,7 +79,7 @@ class SecondLevelModelAbstract
'data' => [$aArgs['doctypes_second_level_id']] 'data' => [$aArgs['doctypes_second_level_id']]
]); ]);
return true; return $aArgs;
} }
public static function disabledFirstLevel(array $aArgs) public static function disabledFirstLevel(array $aArgs)
......
...@@ -28,6 +28,9 @@ define('_DELETE_NOTIFICATIONS', 'Notification deleted'); ...@@ -28,6 +28,9 @@ define('_DELETE_NOTIFICATIONS', 'Notification deleted');
define('_DOCTYPE_FIRSTLEVEL_ADDED', 'Doctype first level added'); define('_DOCTYPE_FIRSTLEVEL_ADDED', 'Doctype first level added');
define('_DOCTYPE_FIRSTLEVEL_DELETED', 'Doctype first level deleted'); define('_DOCTYPE_FIRSTLEVEL_DELETED', 'Doctype first level deleted');
define('_DOCTYPE_FIRSTLEVEL_UPDATED', 'Doctype first level edited'); define('_DOCTYPE_FIRSTLEVEL_UPDATED', 'Doctype first level edited');
define('_DOCTYPE_SECONDLEVEL_ADDED', 'Doctype second level added');
define('_DOCTYPE_SECONDLEVEL_DELETED', 'Doctype second level deleted');
define('_DOCTYPE_SECONDLEVEL_UPDATED', 'Doctype second level edited');
define('_ENTITY_CREATION', 'Entity creation'); define('_ENTITY_CREATION', 'Entity creation');
define('_ENTITY_MODIFICATION', 'Entity modification'); define('_ENTITY_MODIFICATION', 'Entity modification');
define('_ENTITY_SUPPRESSION', 'Entity suppression'); define('_ENTITY_SUPPRESSION', 'Entity suppression');
......
...@@ -28,6 +28,9 @@ define('_DELETE_NOTIFICATIONS', 'Notification supprimée'); ...@@ -28,6 +28,9 @@ define('_DELETE_NOTIFICATIONS', 'Notification supprimée');
define('_DOCTYPE_FIRSTLEVEL_ADDED', 'Chemise ajoutée'); define('_DOCTYPE_FIRSTLEVEL_ADDED', 'Chemise ajoutée');
define('_DOCTYPE_FIRSTLEVEL_DELETED', 'Chemise supprimée'); define('_DOCTYPE_FIRSTLEVEL_DELETED', 'Chemise supprimée');
define('_DOCTYPE_FIRSTLEVEL_UPDATED', 'Chemise modifiée'); define('_DOCTYPE_FIRSTLEVEL_UPDATED', 'Chemise modifiée');
define('_DOCTYPE_SECONDLEVEL_ADDED', 'Sous-chemise ajoutée');
define('_DOCTYPE_SECONDLEVEL_DELETED', 'Sous-chemise supprimée');
define('_DOCTYPE_SECONDLEVEL_UPDATED', 'Sous-chemise modifiée');
define('_ENTITY_CREATION', 'Création entité'); define('_ENTITY_CREATION', 'Création entité');
define('_ENTITY_MODIFICATION', 'Modification entité'); define('_ENTITY_MODIFICATION', 'Modification entité');
define('_ENTITY_SUPPRESSION', 'Suppression entité'); define('_ENTITY_SUPPRESSION', 'Suppression entité');
......
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